In dit gedeelte gaan we dieper in op het gebruik van shell commando's. Als we een linux terminul openen start hierin een shell. De shell is de eigenlijke CLI (command line interface). Die interpreteert wat we intikken en geeft dit door aan het besturingssysteem. De meeste gebruikte shell in linux is bash
- onderbreken
Sommige commando's duren langer dan je dacht. Je kan ze meestal onderbreken met<CTRL><C>
- files bekijken
Metcat,moreoflesskun je de inhoud van een file op scherm brengen zonder hiervoornanote gebruiken:
catjan@cassandra ~ $ cat testfile dit is mijn testfile bla bla bla en nog wat!morejan@cassandra ~ $ more testfile2 1 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen 2 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen 3 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen 4 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen 5 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen 6 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen 7 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen 8 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen 9 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen 10 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen 11 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen 12 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen 13 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen --More--(27%)Bij
morekun je naar beneden scrollen met<spacebar>of<enter>.lessjan@cassandra ~ $ less testfile 27 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen 28 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen 29 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen 30 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen 31 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen 32 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen :Bij
lesskun je ook naar boven scrollen met de pijltjestoetsen, pgdn en pgup. Druk q omlesste verlaten.
-
directory operaties
Anders dan in sommige besturingssystemen worden directories van mekaar gescheiden door de slash/
Het path naar de home-directory van onze voorbeeldgebruiker jan is dan:/home/jan
In een volgende hoofdstuk zien we ook dat linux geen drive letters gebruikt.
cd
Metcd(change directory) kun je doorheen de directory-structuur wandelen.
cdgevolgd door<enter>brengt je altijd naar je eigen home-directory:
jan@cassandra ~/bin $cd
jan@cassandra ~/bin $
Om vanuit je home naar de directoryDocumentste gaan tik je:
jan@cassandra ~ $cd Documents
jan@cassandra ~/Documents $
Maar dat is alleen maar zo als Documents bestaat. In hetvolgende voorbeeld maken we een tikfout:
jan@cassandra ~ $cd Documens
bash: cd: Documens: No such file or directory
jan@cassandra ~ $
cdgevolgd door..brengt je één nivo hoger in de directory hierarchie. We gaan naar de zogenaamde parent-directory. (let op: één spatie tussen cd en de twee punten, geen spatie tussen de twee punten)
jan@cassandra ~ $cd ..
jan@cassandra /home $
Let op voor de directory/home. Dit is niet jouw home-directory, maar de overkoepelende directory van alle home-directories van alle gebruikers! Als we in een oefening vragen om te werken in je home-directory, begin dan gewoon met$ cd <enter>
Twee niveaus hoger (van/home/jannaar/):
jan@cassandra ~ $cd ../..
jan@cassandra / $
De huidige directory heet.Dat is misschien een beetje raar, en wat kun je daar dan mee doen? :-) Als je je in een bepaalde directory bevindt, bijvoorbeeldtestdirectory, kun je de.gebruiken om te verwijzen naar de huidige directory in een kopieeropdracht als volgt:
jan@cassandra:~/testdirectory $cp ../testfile .
Dit zal de filetestfileverplaatsen van de parent-directory naar je huidige directory.
-
mkdirMet
mkdir(make dir) kun je zelf directories aanmaken:
jan@cassandra ~ $mkdir testdirectory
jan@cassandra ~ $ls
bin Documents Desktop kubus testdirectory testje
jan@cassandra ~ $cd testdirectory
jan@cassandra ~/testdirectory $
rmdir
Metrmdir(remove dir) kun je lege directories verwijderen:
jan@cassandra ~ $rmdir testdirectory
jan@cassandra ~ $ls
bin Documents Desktop kubus testje
- file operaties
touch
Met het commandotouchkun je lege files aanmaken. Je kantouchook gebruiken om de modification date van een file aan te passen.
jan@cassandra ~ $touch testfile
jan@cassandra ~ $ls
bin Documents Desktop kubustestfiletestje
cp
Om files te copieren gebruik je het commandocp(copy).
jan@cassandra ~ $cp testfile testfile2
jan@cassandra ~ $ls
bin Documents Desktop kubus testfiletestfile2testje
jan@cassandra ~ $cp testfile Documents
jan@cassandra ~ $ls Documents
testfile2
Je hebt nu drie testfiles met dezelfde inhoud: 2 staan in je home-directory, de derde staat inDocuments.
mv
Om de naam van een file te wijzigen gebruik jemv(move). Om een file te verplaatsen naar een andere directory gebruik je eveneensmv. Om een volledige directory te verplaatsen met alles erin (eventueel ook subdirectories) of gewoon om ze te herbenoemen, gebruik je ookmv.
We herbenoementestfile2:
jan@cassandra ~ $mv testfile2 testfile-b
jan@cassandra ~ $ls
bin Documents Desktop kubus testfiletestfile-btestje
Nu verplaatsen wetestfile-bnaar directoryDocuments:
jan@cassandra ~ $mv testfile-b Documents
jan@cassandra ~ $ls Documents
testfile-b testfile2
rm
Om bestanden te verwijderen gebruik je het commandorm(remove).
jan@cassandra ~ $rm testfile
jan@cassandra ~ $ls
bin Documents Desktop kubus testfile-b testje
Om niet lege directories te verwijderen gebruik jerm -r(remove recursively). We verwijderen nuDocumentsen alle files erin.
jan@cassandra ~ $rm -r Documents
jan@cassandra ~ $ls
bin Desktop kubus testfile-b testje
-
pwd, who, whoami en shutdown
pwd
Metpwd(print working directory) kun je zien welke je huidige directory is. Dat kun je meestal ook zien aan de shell prompt, maar niet iedere shell prompt is even informatief.
jan@cassandra ~ $pwd
/home/jan
whoami
Als je een paar keersugedaan hebt, of als je werkt op een andere machine via ssh, is het niet altijd duidelijk met welke identiteit je aan het werken bent. Het commandowhoamitoont je huidige identiteit
jan@cassandra ~ $whoami
jan
-
who
Er is een verschil tussenwhoamienwho.whobrengt iedereen op scherm die is ingelogd. su-gebruikers zijn niet echt ingelogd en verschijnen dus metwhoook niet op scherm.
jan@cassandra ~ $who
jan tty7 2010-08-07 11:45 (:0)
jan pts/0 2010-08-07 11:50 (:0.0)
jan@cassandra ~ $su
Password: x.x.x.x
cassandra jan# whoami
root
cassandra jan# who
jan tty7 2010-08-07 11:45 (:0)
jan pts/0 2010-08-07 11:50 (:0.0)
cassandra jan# exit
jan@cassandra ~ $ shutdown
Om je systeem te herstarten zijn er veel methoden, maar dit is snel:
jan@cassandra ~ $sudo init 6
Maar<CTRL><ALT><DEL>is nog sneller ...
Om het systeem te stoppen kun je het volgende gebruiken:
jan@cassandra ~ $sudo init 0
Er zijn ook nog allerlei varianten vanshutdown, er zijn nog de commandoshalt,rebooten nog enkele andere ...