In dit hoofdstuk gaan we aan de slag met linux. We starten met enkele essentiële handelingen zoals logon en schermwisselen. We bekijken de terminal en zijn basiscommando's. Tenslotte leren we ook nog hoe we in linux hulp kunnen opvragen.
-
logon
Bij een desktop distributie hoort een GUI met een grafische logon. Die kan er als volgt uitzien ...
Als je de toetsencombinatie<CTRL><ALT><F1>
intikt kom je terecht op de login van een zogenaamdetty
(teletypewriter). Servers zonder GUI hebben alleen tty's om op in te loggen. Standaard zijn er 6 van die tty's. In virtualbox ga je naartty1
met de toetsencombinatie<right-CTRL><F1>
. Als je ook een GUI hebt keer je terug met<CTRL><ALT><F8>
of<CTRL><ALT><F7>
Debian Gnu/Linux 6.3 andromeda tty1 cassandra login: jan Password: *-*-*-*-* Linux andromeda 3.13.16-5-generic #1 SMP Tue Dec 18 21:24:20 UTC 2017 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. You have new mail. Last login: Tue Nov 18 14:40:56 2016 jan@cassandra ~ $ _
- schermwisselen
Een linux desktop computer heeft standaard 1 grafisch scherm, en 6 zogenaamde alfanummerieke schermen of terminals of tty's. (zie hoger). Je wisselt van scherm met de onderstaande toetsencombinaties (druk de 3 toetsen gelijktijdig in op je toetsenbord):
<CTRL><ALT><F1>
... ga naar terminal 1 (tty1)
Met deze toetsencombinatie ga je naar terminal 1 (tty1);
witte karakters op een zwarte achtergrond; 25 tekstregels van 80 karakters.
<CTRL><ALT><F2>
... ga naar terminal 2 (tty2)
<CTRL><ALT><F3>
... ga naar terminal 3 (tty3)
<CTRL><ALT><F4>
... ga naar terminal 4 (tty4)
<CTRL><ALT><F5>
... ga naar terminal 5 (tty5)
<CTRL><ALT><F6>
... ga naar terminal 6 (tty6)
<CTRL><ALT><F7/8>
... ga naar je GUI
-
terminal
Als je<CTRL><ALT><F1>
t.e.m.<F6>
intikt kun je gebruik maken van zes alfanummerieke terminals.
In je grafische omgeving heb je ook de mogelijkheid verschillende terminals op te starten. Die vind je meestal onder het hoofdmenu in accessories, in sommige distributies onder system, en bij nog andere door rechts te klikken ergens op je desktop.
In een linux terminal staat meestal een$
(dollarteken) en een knipperende cursor. Dit noemen we de command prompt:$
vertegenwoordigt de prompt van een gewone gebruiker
#
is de root prompt. Met deze prompt heb je systeembeheerdersrechten.
dikwijls heeft de prompt de volgende vorm:
jan@cassandra:~$
jan
is de username
cassandra
is de computer hostname
tussen de : en de $ staat de huidige directory
~ staat voor de home-directory van de huidige user
directories:Als je in een terminal venster werkt, werk je met bestanden en directories.
Een directory is een map of een folder, en heeft als inhoud andere directories of bestanden. Een directory kan ook leeg zijn.
Een file of bestand heeft soms tekst als inhoud, maar kan ook data bevatten (mp3, jpeg, binary, ... ) Als je op een terminal werkt heb je altijd een huidige directory. In deze directory (een folder op het systeem) voer je dan commando's uit. De home directory van een gebruiker is de plaats waar die gebruiker zelf operaties kan en mag uitvoeren. Zij of hij heeft er schrijfrechten. Het is een aanknopingspunt van je Desktop, en andere subdirectories als Documents en ... wat je zelf maar wil. Je maakt die subdirectories zelf als je ze nodig hebt. Als je software gebruikt op linux, maken veel van die toepassingen zelf directories aan in jouw home om daar jouw persoonlijke settings te bewaren.
De volgende benamingen zijn gelijkwaardig:
command = opdracht
command prompt = opdrachtprompt
directory = folder = map
file = bestand
shell:
Om commando's te kunnen intikken draait er altijd een programma in je terminal: de shell. Bij de meeste linux distributies wordt debash
-shell gebruikt (bourne again shell).ls
Om de inhoud van een directory op scherm te brengen, zoals bijvoorbeeld je home directory, gebruik je het commandols
voorbeeld:jan@cassandra ~ $ ls bin Documents Desktop testje kubus
-
users
In linux zijn er gewone gebruikers en is er een root gebruiker.
De root gebruiker is de administrator van het systeem en heeft alle rechten.
Je logt bijna altijd in als gewone gebruiker, zeker in grafische modus.sudo
Om gedurende 1 opdracht administrator te worden laat je je commando voorafgaan door
sudo
. Jouw paswoord wordt dan gevraagd, en als je behoort tot de groepsudoers
wordt jouw opdracht als administrator uitgevoerd.
voorbeeld:jan@cassandra ~ $ sudo fdisk -l [sudo] password for jan: *-*-*-* Disk /dev/sda: 120.0 GB, 120034123776 bytes 255 heads, 63 sectors/track, 14593 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0xae6cae6c Device Boot Start End Blocks Id System /dev/sda1 * 1 858 6891853+ b W95 FAT32 /dev/sda2 859 3897 24410767+ 83 Linux /dev/sda3 3898 6936 24410767+ 83 Linux
su
Om voor een hele reeks opdrachten root te worden tik je het commando
su
in. Hier wordt er ook een paswoord gevraagd, het paswoord van de gebruiker root. Daarna kun je onbeperkt commando's intikken en uitvoeren als root. Je schakelt terug over naar je gewone gebruikersaccount met het commandoexit
.voorbeeld:
jan@cassandra ~ $ su Password: ************ _______________________________ / Civilization is the limitless \ | multiplication of unnecessary | | necessities. | | | \ -- Mark Twain / ------------------------------- \ \ .--. |o_o | |:_/ | // \ \ (| | ) /'\_ _/`\ \___)=(___/ cassandra jan # tail -n 1 /var/log/syslog Oct 18 10:21:09 lx12 mate-screensaver-dialog: pam_ecryptfs: seteuid error cassandra jan # exit exit jan@cassandra ~ $
-
paswoord
passwd
Om je paswoord aan te passen gebruik je het commando
passwd
. Je huidige paswoord wordt gevraagd, daarna twee keer je nieuwe paswoord:jan@cassandra ~ $ passwd Changing password for jan. (current) UNIX password: ######## Enter new UNIX password: ##### Retype new UNIX password: ##### passwd: password updated successfully
In sommige distributies wordt er automatisch hetzelfde paswoord toegekend aan root als aan de eerste gebruiker. Alleen de eerste gebruiker die in LX-Mint of Ubuntu-Desktop aangemaakt wordt krijgt sudo-rechten.
Indien je sudo-rechten hebt kan je het root-paswoord als volgt instellen:jan@cassandra ~ $ sudo passwd [sudo] password for jan: ######## Enter new UNIX password: ##### Retype new UNIX password: ##### passwd: password updated successfully
Het eerste paswoord wordt gevraagd door
sudo
, en is dat van de gebruiker die reeds is ingelogd; hierna wordt 2 keer het paswoord gevraagd van de root gebruiker. Zodra dit is gebeurd, kun je hetsu
commando gebruiken om root gebruiker te worden.Je sudo paswoord wordt maar één keer gevraagd, voor heet eerste commando in een reeks. Pas na 10 minuten 'stilte' wordt dit opnieuw gevraagd.
- hoofdlettergevoelig
Linux is hoofdlettergevoelig. Dit betekent dat de gebruiker Wilfried een andere gebruiker is dan wilFried; het commandoLS
bestaat niet en de directoryDEZE
is niet gelijk aan de directorydEZe
.
- punten en extenties
In sommige besturingssystemen heeft de . een speciale betekenis in een filenaam. In Linux is dat niet het geval. De punt is een gewoon karakter en kan overal voorkomen, één of meerdere keren. Er zijn geen suffixen of extenties in Linux. Ze kunnen wel gebruikt worden voor conventioneel gebruiksgemak maar zijn niet noodzakelijk. Een mp3-bestand kan gewoonColdplay256
heten. Een executablefreedroid
.
Het systeem is zelf in staat te zien wat voor type een file is. Executable files hebben geen speciale extensie maar een permissionx
van executable.
Die permissions kun je op scherm brengen metls -l
jan@cassandra ~ $
ls -l /bin/ls
-rwxr-xr-x 1 root root 92376 2008-04-04 08:42 /bin/ls
Als je als gebruiker vergeten bent wat voor type bestand je voor je neus hebt, kun je gebruik maken van het commandofile
jan@cassandra ~ $
file /bin/ping
/bin/ping: setuid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), stripped
-
editor
Om een bestand aan te maken en er een tekstinhoud in te plaatsen werk je met een editor.
nano
is een eenvoudige command line editor (maar er bestaan ookpico, mcedit, vim
, ...)
Om een bestand aan te maken metnano
tik jenano
in gevolgd door de naam van het nieuwe bestand. Om een bestaand bestand aan te passen tik jenano
in gevolgd door de naam van dat bestand. Je kan ook gewoonnano
zonder meer intikken en tijdens het saven een filenaam meegeven.
jan@cassandra ~ $
nano testfile
GNU nano 2.0.7 File: testfile Dit is mijn test file ... bla bla bla [ New File ] ^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos ^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text ^T To Spell
Je kan nu onmiddellijk tekst beginnen intikken.
Met<CTRL><X>
sluit je af,
Met Y of N geef je te kennen of je de wijzigingen wenst op te slaan of niet
nano
stelt een filenaam voor. Indiennano
niets voorstelt kun je op dat ogenblik zelf een naam kiezen. (en je kan ook altijd een andere filenaam intikken dan het voorstel)
- hulp opvragen
De belangrijkste bron van informatie zijn de man-paginas. Je kan hulp opvragen over elk linux commando doorman <commando>
in te tikken. Kijk even naar het voorbeeld:
jan@cassandra ~ $
man ls
LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION List information about the FILEs (the current directory by default). Sort entries alpha betically if none of -cftuvSUX nor --sort. Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --author with -l, print the author of each file .......... continued
Je kan
man
verlaten door q in te tikken.
Het commandoinfo
werkt ongeveer op dezelfde manier alsman
maar bevat soms meer, soms minder informatie.
jan@cassandra ~ $
info mkdir
File: coreutils.info, Node: mkdir invocation, Next: mkfifo invocation, Prev: ln i\ nvocation, Up: Special file types - 12.3 `mkdir': Make directories ============================== - `mkdir' creates directories with the specified names. Synopsis: - mkdir [OPTION]... NAME... - `mkdir' creates each directory NAME in the order given. It reports an error if NAME already exists, unless the `-p' option is given and NAME is a directory. - The program accepts the following options. Also see *note Common options::. - -m MODE' --mode=MODE' Set the file permission bits of created directories to MODE, which uses the same syntax as in `chmod' and uses `a=rwx' (read, write and execute allowed for everyone) for the point of the departure. *Note File permissions::. - Normally the directory has the desired file mode bits at the moment it is created. As a GNU extension, MODE may also mention special mode bits, but in this case there may be a temporary window during which the directory exists but its special mode bits are incorrect. *Note Directory Setuid and Setgid::, for how the set-user-ID and set-group-ID bits of directories are inherited --zz-Info: (coreutils.info.gz)mkdir invocation, 63 lines --Top-----------------------
We kunnen ook hulp opvragen met de optie--help
die bij de meeste commando's een beknopt overzicht geeft van de mogelijkheden:
jan@cassandra ~ $
mv --help
Usage: mv [OPTION]... [-T] SOURCE DEST or: mv [OPTION]... SOURCE... DIRECTORY or: mv [OPTION]... -t DIRECTORY SOURCE... Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY. Mandatory arguments to long options are mandatory for short options too. --backup[=CONTROL] make a backup of each existing destination file -b like --backup but does not accept an argument -f, --force do not prompt before overwriting -i, --interactive prompt before overwrite --strip-trailing-slashes remove any trailing slashes from each SOURCE argument -S, --suffix=SUFFIX override the usual backup suffix -t, --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY -T, --no-target-directory treat DEST as a normal file -u, --update move only when the SOURCE file is newer than the destination file or when the destination file is missing -v, --verbose explain what is being done --help display this help and exit --version output version information and exit . The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX. The version control method may be selected via the --backup option or through the VERSION_CONTROL environment variable. Here are the values: . none, off never make backups (even if --backup is given) numbered, t make numbered backups existing, nil numbered if numbered backups exist, simple otherwise simple, never always make simple backups . Report bugs to <bug-coreutils@gnu.org>.