home       inleiding       sysadmin       services       links       bash       werk       nothing      

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

    Bij een desktop distributie hoort een GUI met een grafische logon. Die kan er als volgt uitzien ...

    inleiding-basishandelingen-gui-logon

     
    Als je de toetsencombinatie <CTRL><ALT><F1> intikt kom je terecht op de login van een zogenaamde tty (teletypewriter). Servers zonder GUI hebben alleen tty's om op in te loggen. Standaard zijn er 6 van die tty's. In virtualbox ga je naar tty1 met de toetsencombinatie <right-CTRL><F1>. Als je ook een GUI hebt keer je terug met <CTRL><ALT><F8> of <CTRL><ALT><F7>

    Debian Gnu/Linux 6.3 andromeda tty1
     
    cassandra login: jan
    Password: *-*-*-*-*
     
    Linux andromeda 3.13.16-5-generic #1 SMP Tue Dec 18 21:24:20 UTC 2017 
     
    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 2016
     
    jan@cassandra ~ $ _

     

  2. schermwisselen
     
    Een linux desktop computer heeft standaard 1 grafisch scherm, en 6 zogenaamde alfanummerieke schermen of terminals of tty's. (zie hoger). Je wisselt van scherm met de onderstaande toetsencombinaties (druk de 3 toetsen gelijktijdig in op je toetsenbord):
     
    <CTRL><ALT><F1> ... ga naar terminal 1 (tty1)
    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/8> ... ga naar je GUI
     
  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
    # is de root prompt. Met deze prompt heb je systeembeheerdersrechten.
     
    dikwijls heeft de prompt de volgende vorm:
     
    jan@cassandra:~$
     
    jan is de username
    cassandra is de computer hostname
    tussen de : en de $ staat de huidige directory
    ~ staat voor de home-directory van de huidige user
     
    directories:

    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 kan ook data bevatten (mp3, jpeg, binary, ... ) 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 die 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 gelijkwaardig:
     
    command = opdracht
    command prompt = opdrachtprompt
    directory = folder = map
    file = bestand
     
    shell:
     
    Om commando's te kunnen intikken draait er altijd een programma in je terminal: de shell. Bij de meeste linux distributies wordt de bash-shell gebruikt (bourne again shell).

    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. Jouw paswoord wordt dan gevraagd, en als je behoort tot de groep sudoerswordt jouw opdracht als administrator uitgevoerd.
     
    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

    su

    Om voor een hele reeks opdrachten root te worden tik je het commando su in. Hier wordt er ook een paswoord gevraagd, het paswoord van de gebruiker root. Daarna kun je onbeperkt commando's intikken en uitvoeren als root. Je schakelt terug over naar je gewone gebruikersaccount 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/syslog
    Oct 18 10:21:09 lx12 mate-screensaver-dialog: pam_ecryptfs: seteuid error
    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

     
    In sommige distributies wordt er automatisch hetzelfde paswoord toegekend aan root als aan de eerste gebruiker. Alleen de eerste gebruiker die in LX-Mint of Ubuntu-Desktop aangemaakt wordt krijgt sudo-rechten.
    Indien je sudo-rechten hebt kan je het root-paswoord als volgt instellen:

    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.

    Je sudo paswoord wordt maar één keer gevraagd, voor heet eerste commando in een reeks. Pas na 10 minuten 'stilte' wordt dit opnieuw gevraagd.
     

  6. hoofdlettergevoelig
     
    Linux is hoofdlettergevoelig. Dit betekent dat de gebruiker Wilfried een andere gebruiker is dan wilFried; het commando LS bestaat niet en de directory DEZE is niet gelijk aan de directory dEZe.
     
    when-you-like-elmo

     

  7. 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 conventioneel 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.
     
    nano is een eenvoudige command line editor (maar er bestaan ook pico, mcedit, vim, ...)
     
    Om een bestand aan te maken met nano tik je nano in gevolgd door de naam van het nieuwe bestand. Om een bestaand bestand aan te passen tik je nano in gevolgd door de naam van dat bestand. Je kan ook gewoon nano zonder meer intikken en tijdens het saven een filenaam meegeven.
     
    jan@cassandra ~ $ nano 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
    nano stelt een filenaam voor. Indien nano niets voorstelt kun je op dat ogenblik zelf een naam kiezen. (en je kan ook altijd een andere filenaam intikken dan het voorstel)
     

  9. hulp opvragen
     
    De belangrijkste bron van informatie zijn de man-paginas. Je kan hulp opvragen over elk linux commando door man <commando> in te tikken. Kijk even naar het 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.
     
    jan@cassandra ~ $ info mkdir

    File: coreutils.info,  Node: mkdir invocation,  Next: mkfifo invocation,  Prev: ln i\
    nvocation,  Up: Special file types
    -
    12.3 `mkdir': Make directories
    ==============================
    -
    `mkdir' creates directories with the specified names.  Synopsis:
    -
     mkdir [OPTION]... NAME...
    -
    `mkdir' creates each directory NAME in the order given.  It reports
    an error if NAME already exists, unless the `-p' option is given and
    NAME is a directory.
    -
    The program accepts the following options.  Also see *note Common
    options::.
    -
    -m MODE'
    --mode=MODE'
     Set the file permission bits of created directories to MODE, which
     uses the same syntax as in `chmod' and uses `a=rwx' (read, write
     and execute allowed for everyone) for the point of the departure.
     *Note File permissions::.
    -
     Normally the directory has the desired file mode bits at the
     moment it is created.  As a GNU extension, MODE may also mention
     special mode bits, but in this case there may be a temporary window
     during which the directory exists but its special mode bits are
     incorrect.  *Note Directory Setuid and Setgid::, for how the
     set-user-ID and set-group-ID bits of directories are inherited
    --zz-Info: (coreutils.info.gz)mkdir invocation, 63 lines --Top-----------------------

     
    We kunnen ook hulp opvragen met de optie --help die bij de meeste commando's een beknopt overzicht geeft van de mogelijkheden:
     
    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>.