Linux

Commando's

Leerdoelen

  • Waar heeft een Linux systeem wat opgeslagen?
  • Leren werken met commando's

Waar zijn de commando's?

  • sbin directories - commando's voor root
  • bin directories - commando's voor gebruikers
  • Te vinden in:
    • /
    • /usr
    • /usr/local
    • game directory
  • Bestaat niet in de /opt directory
    • Bevat subdirectories per packet

PATH

  • Hoe bepalen we in welke volgorde commando's gezocht worden?
  • Via de PATH variabele
    echo $PATH
    /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:\
    /home/dennisnc/.local/bin
  • Controle met: which
    which ls

which

which ls

Builtin: history

which history

Root only:

which fsck
sudo which fsck

Shell Builtin commands

  • Sneller; de shell zit al in het geheugen
  • Voorbeelden:
    • alias, cd, echo, history, pwd, type, test

type

  • Laat zien waar een commando zich bevindt:
    • Is het een builtin?
    • Is het een alias?
    • Is het op disk?
    • Is het hashed: uit de commando cache
  • type ls
    type history
    type pwd
    which pwd
    pwd is dus 2x aanwezig (/usr/bin/pwd en als builtin)

Alias

  • alias
    • geeft lijst met aliasen
    • Je kan er aliasen mee maken
  • Je kan je eigen alias aanmaken
    • alias uit='/sbin/shutdown -h now'
    • unalias - verwijderen alias
    • unalias uit
  • Alias is tijdelijk. Na een reboot is het weg

Commando's

  • commando<spatie>optie(s)<spatie>argument(en)
  • Commando: De actie die gedaan moet worden
  • Optie(s): Mogelijkheid om een commando op een bepaalde manier te laten werken
  • Argumenten: Daar waar de actie op uitgevoerd moet worden
    • Bijvoorbeeld: source<spatie>destination

Error codes

  • Geen nieuws is goednieuws
  • Controle met $?
    echo "is nat" > water.txt
    echo $?
    0
    rm Water.txt
    rm: cannot remove 'Water.txt': No such file or directory
    echo $?
    1

Commando's na elkaar uitvoeren

  • Scheiden door ;
  • pwd ; ls

Alleen uitvoeren als het goed gaat

  • Scheiden door &&
  • ls water.txt && cat water.txt

Alleen uitvoeren als het fout gaat

  • Scheiden door ||
  • ls Water.txt || echo $? > Water.txt

Pipe line

  • Scheiden door |
  • Output van eerste commando is input van tweede commando
  • Data aan elkaar doorgeven als in een pijp
  • ls *ater.txt | tr [a-z] [A-Z]

xargs

  • Wat als je de output van commando 1 wilt gebruiken als argumenten voor commando 2?
  • ls [wW]ater.txt | rm
    ls [wW]ater.txt | xargs rm

Samenvatting

  • We hebben kennisgemaakt met de basis indeling van een Linux systeem:
    • / - root
    • /usr - user directory
    • /usr/local - lokale directory
    • /opt - optionele software directory
  • We hebben de belangrijkste directories in de root gezien
  • We weten dat de commando's in de bin en sbin directories staan
  • We hebben geleerd hoe we commando's kunnen samen stellen met ; | && || en xargs