LX-INL-INFO-basiscommandos
updated aug/7/2010 18:09

basiscommando's

nuttige links
inhoudstafel: snelkoppelingen
linux mint's download pagina:
http://www.linuxmint.com/download.php
linux.org beginners cursus:
http://www.linux.org/lessons/beginner/toc.html
why linux mint might be a better beginners linux than ubuntu:
http://lifehacker.com/5469575/why-linux-mint-might-be-a-better-beginners-linux-than-ubuntu


In dit hoofdstuk gaan we aan de slag met linux. We starten met enkele essentiële handelingen zoals logon en schermwisselen. We bekijken de terminal en zijn basiscommando's. Tenslotte leren we ook nog hoe we in linux hulp kunnen opvragen.
  1. logon

    grafisch scherm:

    graphical logon linux mint 5

    alfanummerieke login:

    als je <CTRL><ALT><F1> tegelijk intikt krijg je een alfanummeriek scherm:

    Debian Gnu/Linux 4.0 andromeda tty5

    cassandra login: jan
    Password: ########
    Linux andromeda 2.6.16-5-686 #1 SMP Tue Dec 18 21:24:20 UTC 2007 i686

    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    You have new mail.
    Last login: Tue Nov 18 14:40:56 2008

    jan@cassandra ~ $ _

  2. schermwisselen

    Een linux computer heeft standaard 1 grafisch scherm, en 6 zogenaamde alfanummerieke schermen of terminals. Een terminal wordt ook wel tty genoemd. (dat komt van teletypewriter). Je wisselt van scherm met de onderstaande toetsencombinaties.
    Druk de volgende 3 toetsen gelijktijdig in op je toetsenbord:

    <CTRL><ALT><F1>
    Met deze toetsencombinatie ga je naar terminal 1 (tty1). Witte karakters op een zwarte achtergrond; 25 tekstregels van 80 karakters.
    <CTRL><ALT><F2>
    ga naar terminal 2 (tty2)
    <CTRL><ALT><F3>
    ga naar terminal 3 (tty3)
    <CTRL><ALT><F4>
    ga naar terminal 4 (tty4)
    <CTRL><ALT><F5>
    ga naar terminal 5 (tty5)
    <CTRL><ALT><F6>
    ga naar terminal 6 (tty6)
    <CTRL><ALT><F7>
    ga naar je grafisch scherm

  3. terminal

    Als je <CTRL><ALT><F1> t.e.m. <F6> intikt kun je gebruik maken van zes alfanummerieke terminals.

    In je grafische omgeving heb je ook de mogelijkheid verschillende terminals op te starten. Die vind je meestal onder het hoofdmenu in accessories, in sommige distributies onder system, en bij nog andere door rechts te klikken ergens op je desktop.

    In een linux terminal staat meestal een $ (dollarteken) en een knipperende cursor. Dit noemen we de command prompt:

    $ vertegenwoordigt de prompt van een gewone gebruiker
    # dit is de root prompt. Met deze prompt heb je systeembeheerdersrechten

    dikwijls heeft de prompt de volgende vorm:

    jan@cassandra:~$

    jan is de gebruikersnaam
    cassandra is de naam van zijn computer
    tussen de : en de $ staat het path van de huidige directory
    ~ staat voor de home-directory van de huidige gebruiker

    Als je op een terminal werkt heb je altijd een huidige directory. In deze directory (een folder op het systeem) voer je dan commando's uit. De home directory van een gebruiker is de plaats waar een gebruiker zelf operaties kan en mag uitvoeren. Zij of hij heeft er schrijfrechten. Het is een aanknopingspunt van je Desktop, en andere subdirectories als Documents en ... wat je zelf maar wil. Je maakt die subdirectories zelf als je ze nodig hebt. Als je software gebruikt op linux, maken veel van die toepassingen zelf directories aan in jouw home om daar jouw persoonlijke settings te bewaren.

    De volgende benamingen zijn ongeveer gelijkwaardig:

    command
    opdracht
    directory
    folder (map)
    file
    bestand
    opdrachtprompt
    command prompt

    Om commando's te kunnen intikken draait er altijd een programma in je terminal: de shell. Bij de meeste linux distributies wordt bash gebruikt: bourne again shell.

    Als je in een terminal venster werkt, werk je met bestanden en directories.
    Een directory is een map of een folder, en heeft als inhoud andere directories of bestanden. Een directory kan ook leeg zijn.
    Een file of bestand heeft soms tekst als inhoud, maar het kan ook data bevatten (mp3, jpeg, binary, ... )

    ls

    Om de inhoud van een directory op scherm te brengen, zoals bijvoorbeeld je home directory, gebruik je het commando ls

    voorbeeld:

    jan@cassandra ~ $ ls
    bin Documents Desktop testje kubus

  4. users

    In linux zijn er gewone gebruikers en is er een root gebruiker.
    De root gebruiker is de administrator van het systeem en heeft alle rechten.
    Je logt bijna altijd in als gewone gebruiker, zeker in grafische modus.

    sudo

    Om gedurende 1 opdracht administrator te worden laat je je commando voorafgaan door sudo. Je user paswoord wordt dan gevraagd.

    voorbeeld:

    jan@cassandra ~ $ sudo fdisk -l
    [sudo] password for jan: ########

    Disk /dev/sda: 120.0 GB, 120034123776 bytes
    255 heads, 63 sectors/track, 14593 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0xae6cae6c

       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1         858     6891853+   b  W95 FAT32
    /dev/sda2             859        3897    24410767+  83  Linux
    /dev/sda3            3898        6936    24410767+  83  Linux


     ! 
    In de meeste voorbeelden in deze cursus is de tekst in vetjes, die tekst die je zelf moet intikken; de cursieve tekst is de tekst die op scherm verschijnt (command output).

    su

    Om voor een hele reeks opdrachten root te worden tik je het commando su in.
    Ook hier wordt er een paswoord gevraagd, het paswoord van root.
    Je schakelt terug over naar de gewone gebruiker met het commando exit

    voorbeeld:

    jan@cassandra ~ $ su
    Password: ########
     _______________________________
    / Civilization is the limitless \
    | multiplication of unnecessary |
    | necessities.                  |
    |                               |
    \ -- Mark Twain                 /
     -------------------------------
       \
        \
            .--.
           |o_o |
           |:_/ |
          //   \ \
         (|     | )
        /'\_   _/`\
        \___)=(___/

    cassandra jan # tail -n 1 /var/log/messages
    Aug  7 10:54:55 lap2009 sudo: Warning: Using default salt value (undefined in ~/.ecryptfsrc)
    cassandra jan # exit
    exit
    jan@cassandra ~ $

  5. paswoord

    passwd

    Om je paswoord aan te passen gebruik je het commando passwd.
    Je huidige paswoord wordt gevraagd, daarna twee keer je nieuwe paswoord:

    jan@cassandra ~ $ passwd
    Changing password for jan.
    (current) UNIX password:
    ########
    Enter new UNIX password:
    #####
    Retype new UNIX password:
    #####
    passwd: password updated successfully

    ALLEEN in UBUNTU of MINT: sommige gebruikers vergeten in ubuntu of linux mint de root account aan te maken, of ze klikken te vlug, of ze vergeten welk paswoord ze ingaven. (In de meeste versies van ubuntu wordt de root account niet voorzien van een paswoord. In de recentere versies van mint wordt er een root account aangemaakt met hetzelfde paswoord als de eerste gebruiker). In dat geval (en alleen bij ubuntu based distributies) kan je van de root account als volgt het paswoord resetten in je terminal:

    jan@cassandra ~ $ sudo passwd
    [sudo] password for jan: ########
    Enter new UNIX password:
    #####
    Retype new UNIX password:
    #####
    passwd: password updated successfully


    Het eerste paswoord wordt gevraagd door sudo, en is dat van de gebruiker die reeds is ingelogd; hierna wordt 2 keer het paswoord gevraagd van de root gebruiker. Zodra dit is gebeurd, kun je het su commando gebruiken om root gebruiker te worden.

    PAS OP: indien je reeds eerder het commando sudo hebt gebruikt in de huidige terminal, wordt het sudo paswoord niet meer gevraagd.


  6. filenamen: hoofdletters

    Linux is hoofdlettergevoelig. Dit betekent dat de gebruiker Wilfried een ander gebruiker is dan wilFried; het commando LS bestaat niet en de directory DEZE is niet gelijk aan de directory dEZe.

  7. filenamen: punten en extenties

    In sommige besturingssystemen heeft de . een speciale betekenis in een filenaam. In Linux is dat niet het geval. De punt is een gewoon karakter en kan overal voorkomen, één of meerdere keren. Er zijn geen suffixen of extenties in Linux. Ze kunnen wel gebruikt worden voor gebruiksgemak maar zijn niet noodzakelijk. Een mp3 bestand kan gewoon Coldplay256 heten. Een executable freedroid.
    Het systeem is zelf in staat te zien wat voor type een file is.
    Executable files hebben geen speciale extensie maar een permission x van executable. Die permissions kun je op scherm brengen met ls -l

    jan@cassandra ~ $ ls -l /bin/ls
    -rwxr-xr-x 1 root root 92376 2008-04-04 08:42 /bin/ls

    Als je als gebruiker vergeten bent wat voor type bestand je voor je neus hebt, kun je gebruik maken van het commando file.

    jan@cassandra ~ $ file /bin/ping
    /bin/ping: setuid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), stripped

  8. editor

    Om een bestand aan te maken en er een tekstinhoud in te plaatsen werk je met een editor

    pico is zo een eenvoudige editor (maar er bestaat ook nano, mcedit, vim, ...)

    Om een bestand aan te maken met pico tik je pico in gevolgd door de naam van het nieuwe bestand. Om een bestaand bestand aan te passen tik je pico in gevolgd door de naam van dat bestand.
    Je kan ook gewoon pico zonder meer intikken en tijdens het saven een filenaam meegeven.

    jan@cassandra ~ $ pico testfile

      GNU nano 2.0.7              File: testfile                               
    Dit is mijn test file ...
    bla bla bla


















                                                        [ New File ]
    ^G Get Help ^O WriteOut  ^R Read File ^Y Prev Page ^K Cut Text  ^C Cur Pos
    ^X Exit     ^J Justify   ^W Where Is  ^V Next Page ^U UnCut Text^T To Spell

    Je kan nu onmiddellijk tekst beginnen intikken.
    Met <CTRL><X> sluit je af,
    Met Y of N geef je te kennen of je de wijzigingen wenst op te slaan of niet
    pico stelt tenslotte een filenaam voor. Indien pico niets voorstelt kun je op dat ogenblik zelf een naam kiezen. (je kan ook altijd een andere filenaam intikken dan het voorstel)

  9. basiscommando's

    Sommige commando's gaan op de loop en duren langer dan je dacht. Commando's onderbreken kun je meestal met CTRL-C

    1. display files

      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 testfile
      2
           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
          14    Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
          15    Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
          16    Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
          17    Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
          18    Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
          19    Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
          20    Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
          21    Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
          22    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.

    2. 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 directorystructuur wandelen:

      cd gevolgd door enter brengt je altijd naar je eigen home-directory:

      jan@cassandra ~/bin $ cd
      jan@cassandra ~ $

      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 parent directory. (let op: 1 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 je 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:

      jan@cassandra:~/testdirectory $ cp ../testfile .

      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

    3. 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 testfile2 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 (eventueel ook subdirectories) erin 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 Documents:

      jan@cassandra ~ $ mv testfile-b
      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

    4. pwd, who, whoami en shutdown

      pwd

      Met pwd (print working directory) kun je zien wat 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

      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 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: ########
      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

      (nog sneller is CTRL + ALT + DEL )

      en om het systeem te stoppen

      jan@cassandra ~ $ sudo init 0

      (aan/uit knop kort indrukken veroorzaakt dikwijls ook een shutdown)

  10. absoluut en relatief path

    In een path worden directories van mekaar gescheiden door de / (slash)

    Alle bestanden bevinden zich op een linux machine ergens in een directory. Dat kan bijvoorbeeld je home-directory zijn. Indien je aan het werken bent op een linux terminal, bevindt je terminal zich in een bepaalde directory. We noemen deze vaak de huidige directory of de working directory. Daarnet hadden we gezien dat we de huidige directory op scherm kunnen brengen met pwd.

    Veronderstel dat er een file genaamd copyrc.tar.gz bestaat die zich bevindt in de subdirectory backups van de home directory van jan.
    Het absolute path naar copyrc.tar.gz is dan /home/jan/backups

    Het commando pwd geeft altijd de absolute path naar je huidige directory.

    Als jij je op dat ogenblik bevindt in de subdirectory Desktop van de home directory van jan (/home/jan/Desktop),
    dan is het relatieve path naar copyrc.tar.gz gelijk aan ../backups

    Bevind ik mij in een terminalvenster in de home directory van jan dan is mijn relatief path naar copyrc.tar.gz simpelweg gelijk aan backups.

    Je home directory wordt dikwijls afgekort tot ~ (tilde)
    Je huidige directory wordt aangegeven met . (de punt)
    Je parent directory wordt aangegeven met ..

    Vanuit de directory Desktop in het hogere voorbeeld is het relatieve path naar /home/karl gelijk aan ../../karl

  11. jokertekens of wildcards

    Er zijn twee wildcard tekens.
    de belangrijkste is de * (asterisk)

    Waar je de wildcard * plaatst wordt deze opgevuld door om het even wat met om het even welke lengte, ook lengte nul.

    Indien er een directory oefening2 bestaat, zal het volgende commando alle bestanden in de huidige directory copieren naar de directory oefening2:

    jan@cassandra ~ $ cp * oefening2


    Het volgende commando brengt alle files en directories uit /etc op scherm die beginnen met de letter a:

    jan@cassandra ~ $ ls -d /etc/a*
    drwxr-xr-x 3 root root    4096 2010-04-27 12:28 /etc/acpi
    -rw-r--r-- 1 root root    2981 2010-04-27 12:03 /etc/adduser.conf
    drwxr-xr-x 2 root root    4096 2010-05-23 23:21 /etc/akonadi
    drwxr-xr-x 2 root root   12288 2010-07-30 11:49 /etc/alternatives
    -rw-r--r-- 1 root root     395 2010-03-05 03:31 /etc/anacrontab
    drwxr-xr-x 7 root root    4096 2010-05-25 21:09 /etc/apache2
    drwxr-xr-x 6 root root    4096 2010-04-27 12:13 /etc/apm
    drwxr-xr-x 3 root root    4096 2010-05-02 19:41 /etc/apparmor
    drwxr-xr-x 5 root root    4096 2010-07-07 23:37 /etc/apparmor.d
    drwxr-xr-x 4 root root    4096 2010-05-24 10:26 /etc/apport
    drwxr-xr-x 6 root root    4096 2010-05-23 22:37 /etc/apt
    -rw-r----- 1 root daemon   144 2010-03-05 03:42 /etc/at.deny
    drwxr-xr-x 3 root root    4096 2010-04-27 12:29 /etc/avahi


    Het volgende commando verplaatst alle files uit de home directory die beginnen met coldplay en eindigen op mp3 naar de directory Music.

    jan@cassandra ~ $ mv ~/coldplay*mp3 ~/Music


    De tweede wildcard is  ? (vraagteken)
    Het vraagteken vervangt telkens 1 en slechts 1 karakter.

    Het volgende commando brengt alle files en directories uit /etc op scherm met exact 8 karakters en die beginnen met de letter s:

    jan@cassandra ~ $ ls -ld /etc/s???????
    -rw-r--r-- 1 root root  3663 2009-11-10 19:54 /etc/screenrc
    drwxr-xr-x 4 root root  4096 2010-07-10 23:54 /etc/security
    -rw-r--r-- 1 root root 18832 2009-12-03 17:11 /etc/services
    drwxr-xr-x 2 root root  4096 2010-04-27 12:03 /etc/sysctl.d


  12. opties

    Met de nodige opties kun je het gedrag of het output-formaat van een commando aanpassen. We hebben reeds rm -r en ls -l vermeld, maar er zijn er nog een paar belangrijke:

    rm -r
    verwijdert recursief files en directories
    rm -v
    verbose: brengt op scherm welke acties werden ondernomen
    ls -l
    geeft een zogenaamde longlist van een directory met vermelding van permissions, eigenaar, groep, grootte, modification date en natuurlijk ook de filenaam
    ls -a
    geeft eveneens hidden files weer
    ls -R
    geeft eveneens de inhoud van alle subdirectories weer
    mv -v
    brengt op scherm welke acties werden ondernomen
    cp -r
    copieert inclusief alle subdirectories
    cp -p
    bewaart alle file eigenschappen
    cp -v
    brengt op scherm welke acties werden ondernomen

    Je kan opties bij elkaar combineren.
    Voorbeeld: ls -alR is hetzelfde als  ls -a -R -l

    De volgorde van de opties is dikwijls niet van belang.

  13. hulp opvragen

    De belangrijkste bron van hulpinformatie zijn de man-pages. Je kan hulp opvragen over ongeveer elk mogelijk commando door man SPATIE <commando> in te tikken.

    voorbeeld:

    jan@cassandra ~ $ man ls


    LS(1)                                     User Commands                                     LS(1)

    NAME
           ls - list directory contents

    SYNOPSIS
           ls [OPTION]... [FILE]...

    DESCRIPTION
           List  information about the FILEs (the current directory by default).  Sort entries alpha‐
           betically if none of -cftuvSUX nor --sort.

           Mandatory arguments to long options are mandatory for short options too.

           -a, --all
                  do not ignore entries starting with .

           -A, --almost-all
                  do not list implied . and ..

           --author
                  with -l, print the author of each file

    .......... continued


    Je kan man verlaten door q in te tikken.

    Het commando info werkt ongeveer op dezelfde manier als man maar bevat soms meer, soms minder informatie. We kunnen ook de meeste commando's intikken voorzien van de long option --help:

    jan@cassandra ~ $ mv --help

    Usage: mv [OPTION]... [-T] SOURCE DEST
      or:  mv [OPTION]... SOURCE... DIRECTORY
      or:  mv [OPTION]... -t DIRECTORY SOURCE...
    Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

    Mandatory arguments to long options are mandatory for short options too.
          --backup[=CONTROL]       make a backup of each existing destination file
      -b                           like --backup but does not accept an argument
      -f, --force                  do not prompt before overwriting
      -i, --interactive            prompt before overwrite
          --strip-trailing-slashes  remove any trailing slashes from each SOURCE
                                     argument
      -S, --suffix=SUFFIX          override the usual backup suffix
      -t, --target-directory=DIRECTORY  move all SOURCE arguments into DIRECTORY
      -T, --no-target-directory    treat DEST as a normal file
      -u, --update                 move only when the SOURCE file is newer
                                     than the destination file or when the
                                     destination file is missing
      -v, --verbose                explain what is being done
          --help     display this help and exit
          --version  output version information and exit

    The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
    The version control method may be selected via the --backup option or through
    the VERSION_CONTROL environment variable.  Here are the values:

      none, off       never make backups (even if --backup is given)
      numbered, t     make numbered backups
      existing, nil   numbered if numbered backups exist, simple otherwise
      simple, never   always make simple backups

    Report bugs to <bug-coreutils@gnu.org>.

  14. piping en redirection

    Als we een ls -l commando intikken, komt er vaak veel te veel informatie op ons scherm. Doe dit maar eens:

    jan@cassandra ~ $ ls -l /etc

    In veel gevallen biedt de grafische terminal de mogelijkheid om terug te scrollen, maar dit werkt slechts voor 500 tekstregels. Bovendien hebben we niet altijd de beschikking over een gnome-terminal of een xterm, maar werken we op servers dikwijls op een headless machine (geen grafisch environment). Gelukkig kunnen we dan de OUTPUT van ls -l PIPEN met | naar de INPUT van less. | is de vertikale streep die je op belgische toetsenborden vindt door <ALTGR>+<1> in te tikken.

    jan@cassandra ~ $ ls -l /etc | less

    De output van ls -l is de catalog van etc. Die gebruiken we als ware het een tekstfile als input voor less. Dat doen we allemaal met het 'pipe'-teken |

    We kunnen door het hogere commando omhoog en omlaag scrollen in de directory listing, en zoekfuncties gebruiken die standaard in less aanwezig zijn.

    Een andere veel gebruikte pipe is de volgende:

    jan@cassandra ~ $ ps -A | grep <processname>

    ps -A geeft alle processen weer die draaien op je computer.
    grep zoekt in een file alle regels op die de zoekstring bevatten.

    Het volgende voorbeeld geeft de processen weer, met hun PID's (process identifiers) waar de string 'gnome' in voorkomt:

    jan@cassandra ~ $ ps -A | grep gnome

     6478 ?        00:00:00 gnome-keyring-d
     6597 ?        00:00:00 gnome-settings-
     6741 ?        00:00:01 gnome-panel
     6752 ?        00:00:01 gnome-screensav
     6798 ?        00:00:32 gnome-do
     6805 ?        00:00:00 gnome-power-man
     7519 ?        00:00:00 gnome-terminal
     7521 ?        00:00:00 gnome-pty-helpe


    Redirection is het verplaatsen van de output van een commando naar een file of een device. Dit is o.a. nuttig indien er logfiles moeten worden aangemaakt en bewaard. Later kan je dan met zoekopdrachten deze logs bekijken.

    cassandra jan # tcpdump -i eth0 > dumpfile

    tcpdump brengt alle netwerkpakketten op scherm. Door de redirect komt dit terecht in een bestand. Je kan dat bestand later napluizen om te kijken waar bepaalde protocollen vandaan komen (vb.: # grep arp dumpfile haalt alle arp-pakketten uit de dump)

    Een andere mogelijkheid is het redirecten van info naar een andere terminal of naar een printer. Maar meestal heb je daar root rechten voor nodig.

    Het volgende voorbeeld stuurt de configuratiefile /etc/vsftpd van de ftp server naar de printer, als je dat tenminste mag:

    jan@cassandra ~ $ cat /etc/vsftpd > /dev/lp


    Als je het volgende commando ingeeft zal cat de standaardinput (toetsenbord) doorsturen naar het bestand testfile. Je kan het commando beëindigen met CTRL-D (EOF end of file karakter).

    jan@cassandra ~ $ cat > testfile

    De redirection > wist altijd het originele bestand.
    Informatie toevoegen aan een reeds bestaande file, kun je met  >>
    Test dit maar eens uit:

    jan@cassandra ~ $ ls -l / >> ~/catalog_rootdir
    jan@cassandra ~ $ ls -l / >> ~/catalog_rootdir
    jan@cassandra ~ $ cat ~/catalog_rootdir

    Tenslotte kun je ook een tekstbestand gebruiken als input voor een commando. Dit wordt vaak gebruikt in scripts om bestanden te lezen, en uitzonderlijk in dit dikwijls geciteerde maar door mij nooit gebruikte voorbeeld:

    jan@cassandra ~ $ mail karl@telenet.com < my_preformatted_mail