Inleiding
Omdat Linux een unix kloon is, is het handig om de command line
interface (CLI) van Linux in de vingers te hebben.
Oefenen hiermee is mogelijk zonder de grafische user interface X op te
starten, of wanneer dat automatisch al gebeurd is, binnen X een
zogeheten shell window te starten.
Een belangrijk commando is man. Hiermee wordt een manual pagina op het
scherm gezet. Gebruik dit commando als je de mogelijkheden van een
nieuw commando wilt leren kennen.
Tik op een commando regel: man man en je krijgt de manual page van het
commando man.
Enkele belangrijke tips voor je aan de slag gaat:
- Je moet eerst inloggen om met linux te
kunnen werken.
- Om te kunnen inloggen, heb je een inlognaam en een password nodig.
- Linux voert je commando uit of geeft een foutmelding. Zelden wordt
er om een bevestiging gevraagd (zoals: are you sure?).
- Als gewone gebruiker mag je niet alle commando's uitvoeren.
- Als gewone genruiker mag je niet overal in het filesysteem
schrijven of dingen weggooien.
- In je eigen inlog directory, waar je dus terecht komt na inloggen,
heb je meestal wel alle rechten. Deze directory wordt ook wel je
HOME-directory genoemd.
- De superuser (gebruiker met de inlognaam root) mag vrijwel alles.
Werk alleen als superuser als dat nodig is.
- Veel commando's werken met bestanden. In dat geval tik je de naam
van het bestand achter het commando. Laat je de filenaam weg dan
verwachten sommige commando's input van het keyboard. Je kunt dan
wat intikken en afsluiten met Ctrl-D.
- Een commando dat lijkt te hangen is meestal af te sluiten met
Ctrl-C.
- Linux (en Unix) maakt onderscheid tussen hoofd- en kleine letters.
Het commando pwd is dus pwd en niet PWD of Pwd.
Moderne linux distributies maken heel veel gebruik van de grafische
inteface.
Veel basis bewerkingen zijn inmiddels met grafische tools a la windows
uit te voeren. Probleem bij deze aanpak is dat de gebruiker niet weet
wat er nu precies onder de motorkap gebeurt. Nu kun je zeggen dat je
dat ook niet wilt weten, maar problemen zijn eenvoudiger te traceren
en op te lossen als je die kennis wel hebt. In plaats van het opnieuw
installeren van het hele systeem kan een eenvoudige ingreep met een
teksteditor het hele systeem weer netjes in het gareel brengen.
De configuratie van Linux wordt voor het grootste deel bepaald door
'gewone' ASCII tekstfiles in de directory etc.
Files, directories, permissies
Alle bestanden zijn terug te vinden in een enkele directory boom.
De stam van deze boom is de root directory. De notatie hiervoor is /
(let op: niet de backslash zoals bij windows en/of dos).
Een bestand heeft een naam die ook allerlei gekke karakters mag
bevatten, hoewel het niet echt aan te raden is om onduidelijke
cryptische filenamen te gebruiken.
Alle afzonderlijke filesystemen (verzamelingen van bestanden die bij
windows aangegeven worden met een drive-letter zoals C:, D: etc.) zijn
in deze boomstructuur ondergebracht. Zo vinden we de bestanden op de
cd-rom dive in de directory /cdrom of /mnt/cdrom (afhankelijk van waar
de cdrom in het geheel is aangekoppeld).
De volgende figuur geeft een klein deel van de fileboom weer.
De rechthoekjes zijn files (bestanden met data) de afgeronde
rechthoekjes zijn directories.
Een directory kan files een weer andere directories (zogenoemde
subdirectories) bevatten (dit is dus hetzelfde als folders of mappen
bij windows of macintosh).
Een gebruiker zit op een gegeven moment in een bepaalde directory. Dit
heet de working directory. Een bestand kan dan bereikt worden met de
naam van dit bestand. Dus als de gebruiker in de directory leovm zit,
kan linux.txt direct gevonden worden. zit de gebruiker in een andere
directory dan zijn er twee mogelijkheden om de file linux.txt in leovm
aan te duiden.
- Een absoluut pad vanaf de root directory: /home/leovm/linux.txt
(absolute paden beginnen met een slash)
- Een relatief pad naar het bestand toe. Stel we zitten in etc, dan
gaan we met .. (punt punt) een directory omhoog en kunnen dan weer
afdalen naar home/leovm we krijgen dan: ../home/leovm/linux.txt
Elke file of directory heeft permissie-bits.
We kennen drie rechten read, write en execute afgekort tot rwx.
Verder onderscheiden we de eigenaar van de file of directory, de groep
van gebruikers waar de file bijhoort en de rest van de wereld.
Stel we hebben een gebruiker leovm, deze bezit een bestand linux.txt.
Voor dit bestand heeft deze gebruiker lees en schrijfrechten. Voor
leovm zijn de permissies rw- (let op de x-permissie staat uit, vandaar
het minteken)
Stel linux.txt is ook van de group users. Dan is het mogelijk dat
alle gebruikers die in de group users zitten leesrechten voor
linux.txt hebben. De group-permissie staat dan op r--.
Willen we bereiken dat ieder ander persoon linux.txt niet kan lezen,
schrijven of uitvoeren, dan geven we als laatste permissie --- (alle
rechten uitgezet).
De totale permissie van linux.txt ziet er dan als volgt uit: rw-r-----
Dus eerst de eigenaar, dan de group en als laatste der rest.
Een user (bijvoorbeeld een persoon die toegang tot het systeem heeft)
kan in meer dan een groep zitten.
Alleen bij bestanden die als programma (executable of script)
uitgevoerd worden hebben het x-bit aanstaan. Voor directories geldt
iets speciaals.
Het x-bit wordt hier gebruikt om aan te geven dat je erin mag komen.
-
Basisset CLI commando's
Voer nu stap voor stap deze instructies uit op Linux systeem.
We loggen in op een Linux systeem. Hierna komen ofwel in een grafische
omgeving (X-windw system) of in een command line omgeveng (een zwart
scherm met een commando prompt). In het laatste geval hoeft er op dit
moment nog niets te gebeuren, omdat we juist in deze werkomgeving gaan
oefenen. In het eerste geval moet een een zogenoemde command window
(shell) opgestart worden. Dit is te vinden in de taakbalk onder aan
het scherm (en heet Console, Konsole, terminal of shell). Activeer
zo'n command window en ga er met de muis in staan.
Let erop dat je bij de volgende instructies steeds afsluit met de
Enter-toets (dus je geeft een nieuwe regel, pas dan wordt het commando
uitgevoerd).
Tik in:
who
En zie wie er allemaal ingelogd zijn op het systeem.
Tik in:
ls
(Dit is een kleine letter L gevolgd door een s en natuurlijk
Entertoets) Een lijst van files in de directory waar je zit wordt
zichtbaar.
Tik in:
ls -al
Je krijgt meer informatie over de files en directories (als gevolg van
de optie -l) en ook files en directories beginnend met een punt zijn
nu te zien (als gevolg van de optie -a).
Commando's zijn te voorzien van opties of flags. Deze worden zelf
meestal door een minteken voorafgegaan.
Tik in:
man ls
Nu verschijnt er een uitvoerige helpfile over het commando ls op het
scherm.
Deze is volgens een standaard formaat opgesteld. Alle mogelijke opties
worden besproken.
Onderin staat een dubbele punt met daarachter de cursor. Omdat het
niet allemaal in een scherm past kun je verder kijken door het
intikken van de spatiebalk.
Ook kun je altijd stoppen door een q in te tikken. Meer keren de
spatiebalk intikken brengt ons aan het eind van deze manual page
(man-page). Tik dan q in om de manual te verlaten.
Met het commando echo kun je een tekstje op het scherm zetten.
Tik in:
echo Hoi
Na het intikken van de entertoets verschijnt de tekst Hoi op het
scherm. Op het eerste gezicht niet echt zinvol, maar als we later met
scripts gaan werken zal de
waarde van echo duidelijk worden.
Om de uitvoer van een commando niet naar het scherm, maar naar een
bestand (file) te sturen kan het > teken gebuikt worden. Tik in:
echo Hoi > groet
zal een file met de naam groet aanmaken. De inhoud is de tekst Hoi.
Controleer dat de file aangemaakt is met het ls commando. Hoe groot
is de file? (gebruik ls -l).
Met het commando cat kan de inhoud van een file op het scherm
weergegeven worden.
Tik in:
cat groet
Op het scherm verschijnt nu Hoi. Als een bestand veel tekst bevat
schieten de regels razendsnel over het scherm. Met het commando less (voorheen more)
komt het in hapklare brokken
(van 25 regels) op het scherm. Het systeem wacht op invoer van
bijvoorbeeld een spatie om verder te gaan. Met q is less af te
sluiten.
Bij het commando man werd eigenlijk al met less gewerkt.
Tik in:
less /etc/passwd
Als de file niet bestaat komt hiervan een melding. In het andere geval
kijk je met less naar de inhoud van /etc/passwd. Tik q in om te
stoppen.
Tik in:
ls -l > filelist
Kijk met cat of less naar de inhoud van filelist.
Om een tekstfile aan te maken, zijn er verschillende teksteditors
beschikbaar. Een eenvoudige is nano. Om een bestand met de naam xyz te
maken tik je in:
nano xyz
Als je een krachtige (maar wat lastigere) editor wil gebruiken, kun je
vi proberen. Kijk naar de vi introductie hoe
je met vi kunt beginnen.
Een grafisch georienteerde editor is gedit.
Als laatste teksteditor noemen we emacs. Voor sommige mensen een
onmisbare tool.
-
Rondwandelen in het filesysteem
We gaan er van uit dat de boomstructuur zoals hiervoor besproken
bekend is.
Tik in:
pwd
Je krijgt te zien waar je in de directory-boom zit. Pwd staat voor
print working directory. Met het commando cd (change directory) kun je
van directory
veranderen. Je kunt absolute en relatieve pathnames (zie boven)
opgeven.
Met .. (punt-punt) ga je een directory hoger. De verschillende namen
van directories in een pad zijn meht een echt slash / gescheiden.
De slashes staan dus anders dan bij windows (waar backslashes gebruikt
worden).
De huidige directory kun je met een enekel punt (.) aangeven.
Je kunt niet hoger dan de rootdirectory /.
Probeer maar, tik in:
cd /
Je zit nu in de rootdirectory. Tik in:
pwd
Je krijgt te zien: /.
Tik nu in:
cd ..
Er volgt geen foutnmelding, maar pwd leert dat we nog steeds in de
rootdirectory zitten.
Tik nu in:
cd
Dus een kaal cd commando. Tik in:
pwd
En het zal blijken dat we in de directory terechtgekomen zijn, waar we
na normaal inloggen ook in terecht komen. Dit heet de HOME-directory.
-
Speciale directories
We zijn de home directory al tegengekomen als de plek waar je als user na inloggen in terechtkomt.
Daarnaast kennen we inmiddels de root-directory / die de oorsprong is van de hele directory-structuur. Let op: er is ook een /root directory. Dit is de homedirectory van root (de systemadministrator).
Drie directories mogen niet ongenoemd blijven:
-
/etc hier staan allerlei settings van het systeem en systeemsofwtare. Een bekende hier is de eerder genoemde passwd file. Ook subdirectories met startup-scripts zijn hier terug te vinden.
-
/dev hier zijn de devices als files aanwezig. Zo is hda de eerste harde schijf op ide0. hda1 de eerste partitie van deze schijf, hda2 de tweede (primaire) partitie etc.
Merk op dat als we ls -l doen, dan zien we als eerste letter van de permissies ofwel een b of een c (als er een l staat is het een symbolic link naar een ander bestand).
Staat er een b dan is het een device dat block-georienteerd is, bij lezen komt er een block aan data beschikbaar. Dit zij vrijwel alle disks. Een c staat voor een character device. Dit zijn devices die een byte opleveren bij lezen.
-
/proc via proc hebben we toegang (als we de rechten hebben) tot de ingewanden van het systeem. Hier kun je zien hoeveel interrupts er zijn geweest, welke io-poorten er zijn, wat de CPU zoals kan en welke processen (programma's in uitvoering) aanwezig zijn. Let op dit lijken gewone files, maar dat zijn het niet. Het zijn ingangen in het systeem die als ze opgevraagd worden beschikbaar zijn.
-
Links
Het is mogelijk een verwijzing naar een bestaande file te maken. Hiervoor bestaan twee manieren:
- symbolic link of soft-link. Hierbij maakt men een entry in de directory die naar een andere file verwijst. Bij ls -l zie je dan een l als eerste letter van de permissiebytes. Je kunt dan ook zien waar de link naar verwijst.
- hardlink. Dit is eigenlijk het laten terugkomen van een bestand op een andere plek in hetzelfde filesysteem. De linkcount (ook te zien met ls -l is dan groter dan 1). Een voorbeeld zal dit duidelijk maken:
Stel we hebben een file met de naam aap en we doen een ls -l. Dan zien we:
-rw-r--r-- 1 leovm leovm 6 2006-09-21 12:09 aap
Nu geven we het volgende commando:
ln aap /tmp/noot
Dit commando maakt een harde link van het bestand aap aan in /tmp met de naam noot. noot verwijst dus naar dezelfde file en heeft ook dezelfde inhoud als aap. Veranderen we de inhoud van aap dan zien we dat terug bij noot. Het is dezelfde file!
ls -l aap
-rw-r--r-- 2 leovm leovm 6 2006-09-21 12:09 aap
ls -l /tmp/noot
-rw-r--r-- 2 leovm leovm 6 2006-09-21 12:09 /tmp/noot
Het verschil zit hem dus in het getalletje 2 volgende op de permissies. Voor het linken was dit 1. Verwijderen we aap dan blijft noot bestaan, maar pas als de linkcount 1 is en we verwijderen een file dan verdwijnt hij echt.
|
Wat heb je geleerd?
- Inloggen
- De structuur van het Linux filesysteem
- Absolute en relatieve padnamen (pathnames)
- Permissies van files en directories
- Omgaan met de commandline interface (CLI)
- De commando's ls, who, echo, cat, less, man
- Het gebruik van een teksteditor (vi, nano of gedit)
- Het kunstje om de uitvoer niet naar een scherm, maar naar een file te sturen met >
- In de directory-boom rondwandelen met cd
- Het begrip HOME directory en het commando pwd.
Om uit te loggen tik je bij de CLI exit of Control-D in. Bij de grafische
interface kun je vanuit de menuknop links onder voor uitloggen kiezen.
Opdrachten thema 1
- Welke optie moet je het commando ls meegeven om naast files en
directories ook alle subdirectories door te lopen en de inhoud weer te
geven? (recursieve ls; hint: gebruik het commando: man ls)
- Kijk met less /etc/passwd wat je User-ID en Group-ID is.
- Ga naar de root-directory / en zoek welke subdirectories hier staan en welke
wel of niet toegankelijk zijn.
- Kijk welke foutmelding je krijgt als je een niet toegankelijke directory in wil gaan.
- We hebben nog geen copy commando geleerd, maar met cat en > kun je toch
een kopie van een bestand maken. Geef aan hoe dat moet.
|