home       inleiding       sysadmin       services       links       bash       werk       nothing      

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
 

  1. onderbreken
     
    Sommige commando's duren langer dan je dacht. Je kan ze meestal onderbreken met <CTRL><C>
     
  2. files bekijken
     
    Met cat, more of less kun je de inhoud van een file op scherm brengen zonder hiervoor pico 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 om less te verlaten.
       

  3. 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
       
      Met cd (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 directory Documents 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, bijvoorbeeld testdirectory, kun je de . gebruiken om te verwijzen naar de huidige directory in een kopieeropdracht als volgt:
       
      jan@cassandra:~/testdirectory $ cp ../testfile .
       
      Dit zal de file testfile 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
       
      Met rmdir (remove dir) kun je lege directories verwijderen:
       
      jan@cassandra ~ $ rmdir testdirectory
      jan@cassandra ~ $ ls
      bin Documents Desktop kubus testje
       
  4. file operaties
     
    • touch
       
      Met het commando touch kun je lege files aanmaken. Je kan touch 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 commando cp (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 in Documents.
       
    • mv
       
      Om de naam van een file te wijzigen gebruik je mv (move). Om een file te verplaatsen naar een andere directory gebruik je eveneens mv. Om een volledige directory te verplaatsen met alles erin (eventueel ook subdirectories) of gewoon om ze te herbenoemen, gebruik je ook mv.
       
      We herbenoemen testfile2:
         
      jan@cassandra ~ $ mv testfile2 testfile-b
      jan@cassandra ~ $ ls
      bin Documents Desktop kubus testfile testfile-b testje
        
      Nu verplaatsen we testfile-b naar directory Documents:
       
      jan@cassandra ~ $ mv testfile-b Documents
      jan@cassandra ~ $ ls Documents
      testfile-b testfile2
       
    • rm
       
      Om bestanden te verwijderen gebruik je het commando rm (remove).
       
      jan@cassandra ~ $ rm testfile
      jan@cassandra ~ $ ls
      bin Documents Desktop kubus testfile-b testje
       
      Om niet lege directories te verwijderen gebruik je rm -r (remove recursively). We verwijderen nu Documents en alle files erin.
       
      jan@cassandra ~ $ rm -r Documents
      jan@cassandra ~ $ ls
      bin Desktop kubus testfile-b testje
       
  5. pwd, who, whoami en shutdown
      

    • pwd
       
      Met pwd (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 keer su 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 commando whoami toont je huidige identiteit
       
      jan@cassandra ~ $ whoami
      jan
       
    • who
       
       Er is een verschil tussen whoami en who. who brengt iedereen op scherm die is ingelogd. su-gebruikers zijn niet echt ingelogd en verschijnen dus met who 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 van shutdown, er zijn nog de commandos halt, reboot en nog enkele andere ...