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
,more
ofless
kun je de inhoud van een file op scherm brengen zonder hiervoornano
te gebruiken:
cat
jan@cassandra ~ $ cat testfile dit is mijn testfile bla bla bla en nog wat!
more
jan@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
more
kun je naar beneden scrollen met<spacebar>
of<enter>
.less
jan@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
less
kun je ook naar boven scrollen met de pijltjestoetsen, pgdn en pgup. Druk q omless
te 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.
cd
gevolgd door<enter>
brengt je altijd naar je eigen home-directory:
jan@cassandra ~/bin $
cd
jan@cassandra ~/bin $
Om vanuit je home naar de directoryDocuments
te 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 ~ $
cd
gevolgd 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/jan
naar/
):
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 filetestfile
verplaatsen van de parent-directory naar je huidige directory.
-
mkdir
Met
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 commandotouch
kun je lege files aanmaken. Je kantouch
ook gebruiken om de modification date van een file aan te passen.
jan@cassandra ~ $
touch testfile
jan@cassandra ~ $
ls
bin Documents Desktop kubus
testfile
testje
cp
Om files te copieren gebruik je het commandocp
(copy).
jan@cassandra ~ $
cp testfile testfile2
jan@cassandra ~ $
ls
bin Documents Desktop kubus testfile
testfile2
testje
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 testfile
testfile-b
testje
Nu verplaatsen wetestfile-b
naar 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 nuDocuments
en 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 keersu
gedaan 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 commandowhoami
toont je huidige identiteit
jan@cassandra ~ $
whoami
jan
-
who
Er is een verschil tussenwhoami
enwho
.who
brengt iedereen op scherm die is ingelogd. su-gebruikers zijn niet echt ingelogd en verschijnen dus metwho
ook 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
,reboot
en nog enkele andere ...