Basiscommando's

[Opmerking]Standaard

Deze commando's zijn hetzelfde op alle Linux distributies.

Over het invoeren van commando's

De prompt

Opdrachten of commando's worden ingegeven na de prompt. De prompt is een stukje text dat de shell in je terminal zet en dat informatie kan bevatten. Onze standaard prompt in de Live CD ziet er als volgt uit:

ubuntu@ubuntu:~$

In figuur 2.12 zie je de prompt op een groene achtergrond. Deze prompt bevat volgende informatie:

  • Voor de apenstaart (@): de gebruikersnaam waarmee je op het systeem aan het werken bent. We zullen later dieper ingaan op de verschillende gebruikersnamen. Onthoud nu al dat je op Linux altijd een gebruikersnaam hebt. Op basis daarvan worden je rechten op het systeem bepaald. Op de Live CD is slechts één gebruiker aangemaakt, die heet “ubuntu”.

  • Na de apenstaart: de computernaam van het systeem. Dit is nodig voor netwerkverbindingen. Meer hierover in het laatste deel van de cursus. Deze computer heet “ubuntu”. Het zou kunnen dat je door middel van de netwerkdiensten die aktief zijn in jouw netwerk, een andere naam krijgt.

  • Na het dubbele punt: de map waarin je je bevindt. Uitleg hierover volgt zodadelijk.

Een eenvoudig commando: pwd

Sommige commando's kan je zonder meer ingeven en op Enter drukken om ze door te voeren. Een voorbeeld van zo'n commando is pwd, wat staat voor “present working directory”: toon de map waarin ik me voor het moment bevind.

Het pwd commando is een van de eenvoudigste die er zijn: je typt het in, drukt Enter en dat is het dan. Maar het is niet altijd zo eenvoudig.

Een commando met opties

Andere commando's worden gevolgd door opties, die bepalen hoe het commando zich moet gedragen. Een optie begint gewoonlijk met een streepje (-), zoals bijvoorbeeld in ls -a. Het ls commando geeft de inhoud van een map weer. De -a optie specifieert dat alle bestanden, ook diegene die verborgen zijn, getoond moeten worden.

[Opmerking]Dadelijk meer

We bespreken zodadelijk het commando ls in meer detail, maak je nog niet ongerust over wat het doet en hoe het werkt.

Opties kunnen ook gecombineerd worden, zoals in ls -al. De -l optie duidt aan dat we een lijst van alle eigenschappen van de bestanden willen zien. Gecombineerd met -a willen we dus een volledige lijst van zichtbare en onzichtbare bestanden, en we willen van al die bestanden alle eigenschappen zien.

Een commando met argumenten

GNU commando's herken je dikwijls aan het feit dat ze ook humanly readable opties hebben, dat zijn namen van opties die voluit geschreven worden in plaats van afgekort. Een voorbeeld is

ls --version

wat uitleg geeft over de versie van het ls programma. Noteer dat we hier twee streepjes gebruiken om voor het commando aan te duiden waar de optie begint, terwijl we voor de gewone opties slechts één streepje zetten.

[Opmerking]Humanly readable?

Deze term betekent letterlijk “leebaar voor mensen”, in tegenstelling tot de vaak cryptische, uit slechts één karakter bestaande opties.

In laatste instantie kunnen commando's ook argumenten herkennen. Dit zijn objecten waarop het commando zal inwerken. Bijvoorbeeld: ls /etc geeft een overzicht van de inhoud van de configuratiemap /etc.

Hoe een commando zich kan gedragen wordt uitgelegd in de online help pagina's. Noteer dat we met online in deze context doelen op documentatie die op je computer staat, niet op het Internet. Meer hierover in de paragraaf “Hulp”.

Bestanden tonen met ls

Zonet zagen we dat het ls commando gebruikt wordt om de inhoud van mappen te tonen. De algemene syntax van dit commando is als volgt:

ls [optie(s)] [bestand(en)_of_map(pen)]

Als je in handleidingen vierkante haken tegenkomt, betekenen die in deze context dat hetgeen ze omsluiten optioneel is. Inderdaad, ls werkt met of zonder bestandsnaam of mapnaam, en met of zonder opties. Zonder opties krijg je de inhoud van de huidige map te zien:

Handeling met de muis.

ubuntu@ubuntu:~$ ls
Desktop

Verborgen bestanden of specifieke eigenschappen van bestanden/mappen worden niet getoond. De bestanden/mappen die getoond worden, staan in je home directory, de map waarin je geplaatst wordt bij het opstarten van de terminal. In deze map mag je doen wat je wilt. In bovenstaand voorbeeld is de home directory nogal cryptisch aangeduid met het tilde symbool (~). Meer hierover in de volgende sectie, de paragraaf “Mappen”.

Het overgrote deel van de rest van het systeem is beveiligd zodat je er als gewone gebruiker niets aan kan veranderen.

Handeling met de muis.

De huidige map wordt aangeduid met een puntje (.); je kan de huidige map in beeld brengen door de -a optie te gebruiken.

[Belangrijk]Doen!

We gaan niet letterlijk alle computeroutput in de cursus opnemen, dan zou die immers veel te dik worden. Het is de bedoeling dat je de opdrachten zelf ingeeft!

Als je deze optie, -a, opgeeft, zie je gelijk ook nog een ander bestand, namelijk .. (twee punten naast elkaar). Dit staat voor de parent directory of de map die de huidige map bevat. De huidige map bevat ook een aantal verborgen bestanden, die beginnen met een punt. Verschillende bestandstypes worden standaard met verschillende kleuren gemarkeerd: zwart voor gewone bestanden, blauw voor mappen, groen voor uitvoerbare bestanden (programma's). Er is een optie, --color, die standaard geaktiveerd is en dit resultaat geeft.

Mappen

Boomstructuur

Als we het over mappen of directories hebben in Linux, is het van belang een overzicht te hebben van de structuur van het bestandssysteem. Net zoals in MS Windows vertrekken we van een boomstructuur. De stam van de boom wordt aangeduid met een schuine streep (/). Men spreekt ook wel van de root (wortel) van het mappensysteem.

Figuur 2.9. Overzicht van de mappen op de Ubuntu Live CD

De boomstructuur van het bestandssysteem

Paden

De weg om van de root naar een bepaalde map of een bepaald bestand te gaan, noemt men een pad of, in het Engels, path. Er zijn twee soorten paden:

  1. Een absoluut pad: er is geen twijfel over het beginpunt van het pad. Het start aan de root van het bestandssysteem. Dit wordt aangeduid met de schuine streep.

  2. Een relatief pad: het beginpunt van het pad is de huidige map. Zo'n pad begint niet met een schuine streep.

Noteer dat mappen- en bestandsnamen in paden van elkaar gescheiden worden door een schuine streep naar rechts, de slash (/). Verwar dit niet met MS-DOS, waar de namen met een backslash of schuine streep naar links (\) gescheiden worden! Zoals reeds gezegd in de inleiding betekent een backslash in UNIX/Linux dat een lijn die te lang is om afgedrukt te worden op 1 lijn, voortgaat op de volgende.

Het cd commando

Om van de ene map naar de andere te gaan, gebruiken we het cd commando. Een aantal voorbeelden:

[Belangrijk]Volg mee!

De onderstaande sequentie kan je in het terminal venster mee uitvoeren. Typ tussen elk cd commando ook eens ls, gevolgd door Enter elke keer, zodat je een idee krijgt van de verschillende bestanden en mappen op je systeem. We geven zodadelijk meer informatie over wat je te zien krijgt.

Handeling met de muis.

  • cd /etc: brengt je naar de map etc direct aan de wortel van het bestandssysteem.

  • cd sound: ga in de sound map in de map etc. Absoluut pad: /etc/sound.

  • cd ..: ga in de map die de map sound bevat. Je bent weer in /etc, de parent directory van sound.

  • cd X11/config: ga, nog steeds in de map /etc direct twee mappen dieper. Let op de hoofdletter “X”!

  • cd ../..: ga weer twee mappen dichter bij de root van het bestandssysteem. Je bent weer in /etc.

  • cd: geen opties: brengt je altijd terug naar je home directory.

Inhoud van de root map

Welk zijn de belangrijkste bestanden op je systeem? Dit is een overzicht van wat je doorgaans in de root map vindt:

Figuur 2.10. Inhoud van de root map, gezien in een terminal venster

Gebruik cd / en ls om de inhoud van de root map weer te geven.

[Opmerking]Verschillen?

De inhoud van de root map kan lichtjes verschillen van de ene distributie tot de andere, en zelfs van de ene versie tot de andere binnen eenzelfde distributie.

  • bin: de belangrijkste binaire bestanden, programma's dus, die bestemd zijn voor iedereen. Voorbeeld: Ga in de bin map en typ ls. In de lijst zie je het commando ls staan.

  • boot: hier bevindt zich o.a. de kernel, vmlinuz. De naam wordt gevolgd door een versienummer.

  • dev: alle apparaten die met de computer verbonden kunnen worden, bijvoorbeeld /dev/input/mouse0.

  • etc: map met configuratiebestanden, bijvoorbeeld /etc/profile, waarin o.a. bepaald wordt hoe je prompt eruit ziet.

  • home: de map die alle home directories van alle gebruikers bevat. Op de Live CD is er slechts een enkele echte gebruiker gekend, namelijk ubuntu. Bijgevolg vind je de map /home/ubuntu.

  • initrd: extra info voor het starten van het systeem.

  • lib: bibliotheekbestanden.

  • media

  • mnt

  • opt: optionele softwarepakketten, leeg op de Live CD aangezien je in deze omgeving niets extra's kan installeren.

  • proc: informatie over de processen die draaien op het systeem.

  • root: de home directory van de administratieve gebruiker of systeembeheerder, root, niet verwarren met de root van het bestandssysteem! Meer hierover in het derde deel van de cursus.

  • sbin: system binaries: commando's voor gebruik door de systeembeheerder.

  • srv: diensten.

  • sys: systeemmap.

  • tmp: map voor het opslaan van tijdelijke bestanden aangemaakt door het systeem. Hoewel je hierin schrijfrechten hebt, is het niet de bedoeling dat je deze map aktief gebruikt.

  • usr: bestanden voor de gebruikers (user files): programma's, documentatie, bibliotheken enz. Noteer het verschil tussen voor de gebruiker (/usr) en van de gebruiker (/home/naam_van_de_gebruiker).

  • var: variabele bestanden, bijvoorbeeld /var/tmp, een map waar je wel tijdelijke bestanden mag opslaan, bijvoorbeeld downloads van het Internet, kladbestanden, enz.

Gaandeweg zullen we verder kennismaken met de inhoud van deze mappen. Merk op dat je prompt mee verandert wanneer je je in een andere map begeeft. Zo hoef je niet telkens pwd uit te voeren als je even niet meer weet waar je je bevindt in het bestandssysteem.

[Belangrijk]Grafisch browsen

Je kan in het menu ApplicationsHulpmiddelen de Gnome toepassing voor Bestandsbeheer kiezen (zie figuur 2.11). Klik op “Places” en vervang het door “tree”. Klik dan op “File System” om nog eens de verschillende mappen en de indeling van het bestandssysteem te overlopen.

Merk op dat de standaardinstelling enkel mappen toont. Natuurlijk is de bin map niet leeg. Selecteer EditPreferences om het standaardgedrag aan te passen.

Bestandstype

Soorten bestanden

Gedurende deze kleine rondleiding zijn we niet enkel zwarte, blauwe en groene bestandsnamen tegengekomen. Er zijn veel meer verschillende bestanden dan enkel mappen en gewone bestanden. Omdat men in UNIX geprobeerd heeft om alle verschillende soorten objecten van een besturingssysteem voor te stellen als bestanden, zodat ze op een eenvormige manier behandeld kunnen worden, zijn er meer types bestanden dan men op het eerste zicht zou denken. De belangrijkste zijn:

  • mappen: bestanden die andere bestanden of mappen bevatten.

  • Speciale bestanden: het mechanisme dat gebruikt wordt voor input en output. De meeste van deze bestanden bevinden zich in /dev.

  • Links: een systeem gebruikt om een bestand op meerdere plaatsen in het systeem zichtbaar te maken.

  • (Domein) sockets: een bestandstype voor netwerkcommunicatie tussen processen onderling.

  • Named pipes: een bestandstype voor communicatie tussen processen zonder dat die gebruik maken van netwerksemantiek.

Bestandstype achterhalen met het ls commando

Er zijn verschillende mogelijkheden om het type bestand te weten te komen:

Suffixen

Door gebruik te maken van het commando ls -F: elke bestandsnaam wordt dan gevolgd door een symbool, behalve gewone bestanden, die hebben geen suffix (achtervoegsel). De betekenis van die symbolen is als volgt:

Tabel 2.1. Suffix schema voor ls

KarakterBestandstype
/map
*uitvoerbaar bestand, bv. een programma of een script
@link
=socket
|named pipe

Links en uitvoerbare bestanden zullen we later behandelen, sockets en pipes komen soms voor in de man pagina's (zie de paragraaf “Hulp”) maar zijn veelal een zaak van systeembeheerders en programmeurs.

Kleurenschema

Door gebruik te maken van het ls commando zonder opties, al dan niet met een bestandsnaam als argument, waarmee je via kleurcodes meer informatie krijgt:

Tabel 2.2. Standaard ls kleurenschema

KleurBestandstype
blauwmappen
roodgecompresseerde archieven
zwarttekstbestanden
roseafbeeldingen
cyaanlinks
geelrandapparaten of devices
groenuitvoerbare bestanden
knipperend roodgebroken links

Deze types van bestanden zullen later nog aan bod komen.

Lange lijst

Door ls -l uit te voeren, al dan niet met een bestandsnaam als argument. Zo krijg je een lijn per bestand te zien. Het eerste karakter van de lijn stelt het bestandstype voor:

Tabel 2.3. Bestandstypes in een lange lijst

SymboolBetekenis
-gewoon bestand
dmap (directory)
llink
cspeciaal bestand
ssocket
pnamed pipe
bblokapparaat
ckarakterapparaat

Het file commando

Om nog meer details te weten te komen, gebruik je het file commando. Het geeft informatie over de aard en het formaat van bestanden. Enkele voorbeelden:

ubuntu@ubuntu:~$ file Desktop
Desktop: directory
ubuntu@ubuntu:~$ file /etc/profile
/etc/profile: ASCII English text
ubuntu@ubuntu:~$ file /dev/input/mouse0
/dev/input/mouse0: character special (13/32)
ubuntu@ubuntu:~$ file /usr/share/doc/cdrecord/changelog.Debian.gz
/usr/share/doc/cdrecord/changelog.Debian.gz: gzip compressed data, was "changelog.Debian", from Unix, max compression
ubuntu@ubuntu:~$ cd /usr/share/pixmaps
ubuntu@ubuntu:/usr/share/pixmaps$ file gnome-logo-large.png
gnome-logo-large.png: PNG image data, 198 x 225, 8-bit colormap, non-interlaced
ubuntu@ubuntu:/usr/share/pixmaps$ cd
ubuntu@ubuntu:~$ file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), stripped
ubuntu@ubuntu:~$ file /usr/share/doc/bzip2/manual_1.html
/usr/share/doc/bzip2/manual_1.html: HTML document text
[Waarschuwing]Hoofdlettergevoeligheid

Let er in bovenstaand voorbeeld op dat je rekening moet houden met de hoofdlettergevoeligheid van het systeem: “Desktop” is niet hetzelfde als “desktop”!

Je zal later wel merken dat file nog veel meer bestandstypes herkent, incluis bestanden die je normaliter typisch enkel op een MS Windows systeem terugvindt. In tegenstelling tot Windows gaat file kijken in de eerste paar bytes van een bestand om het bestandstype te achterhalen, en niet naar de suffix. Je mag dan ook de namen voor je bestanden vrij kiezen. Let er wel op dat UNIX, en dus ook Linux, hoofdlettergevoelig is. Bijgevolg kunnen file, File, FILE, fILE en filE vijf verschillende bestanden zijn.

[Opmerking]Debian

In het vierde voorbeeld was er in de output van het file commando sprake van Debian. Dit is de Linuxdistributie waarvan Ubuntu afgeleid is. Hier en daar zal je nog referenties naar dit systeem tegenkomen.

Inhoud van tekstbestanden

Enkel tekst!

We hebben zo gehamerd op bestandstypes omdat we ons voornamelijk bezighouden met tekst terminals. Met de hulpmiddelen die we zodadelijk en in grote delen van de rest van de cursus zullen bespreken, kunnen we enkel de inhoud van tekstbestanden tonen. Als je geluk hebt, werkt zo'n commando of hulpprogramma ook op niet-tekstbestanden, zoals archieven of gecompileerde programma's. Als je minder geluk hebt, crasht je terminal. In geval van twijfel dus altijd eerst controleren of je wel met een tekstbestand te maken hebt, alvorens een hulpprogramma (commando) in textuele context uit te voeren!

Het cat commando

Het cat commando, van concatenate, is een van de meest gebruikte hulpprogramma's om inhoud van tekstbestanden over het scherm te laten lopen. Een voorbeeld de boodschap van de dag (Message Of The Day of motd, in de /etc map):

ubuntu@ubuntu:~$ cat /etc/motd
Linux ubuntu 2.6.12-9-386 #1 Mon Oct 10 13:14:36 BST 2005 i686 GNU/Linux

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
[Belangrijk]Probeer dit eens

Wat bemerk je bij het uitvoeren van de opdracht cat /usr/share/doc/vim/README.Debian?

Het less commando

Het probleem met cat is dat grotere bestanden van begin tot eind over het scherm rollen. Je kan dan wel met het schuivertje rechts in je terminalvenster proberen om het begin te zien te krijgen, maar bij echt grote bestanden zal dat niet lukken. Gebruik in dat geval less:

ubuntu@ubuntu:~$ less /etc/motd

Enkele basisvaardigheden voor het gebruik van less:

  • Druk op de spatiebalk om de volgende pagina te zien te krijgen.

  • Druk B om terug te gaan.

  • Druk Q om het less programma te verlaten.

  • Je kan ook de pijltjes omhoog en omlaag gebruiken om te navigeren. In de volgende sektie (de paragraaf “Man pagina's”) behandelen we een voorbeeld.