home       inleiding       sysadmin       services       links       bash       werk       nothing      

bash scripting introductie

  1. wat is een shell
     
    bash staat voor Bourne Again Shell
     
    Een shell is een command-line interpreter. Die shell interpreteert commando's die via een toetsenbord worden ingetikt. Na intikken van de<enter> toets worden de commando's regel per regel uitgevoerd.
     
    De shell wordt standaard uitgevoerd in een tty, de elektronische versie van een teletypewriter of telex, waarmee elke unix/linux machine standaard opstart. Eventueel ook nog via een seriële COM-poort.
    Gebruikers geven echter de voorkeur aan terminal emulators al dan niet in een grafische omgeving, waarin de shell één of meerdere keren naast elkaar kan worden uitgevoerd. Bovendien wordt heel vaak van op afstand gewerkt via ssh, secure shell.
    Alle Unix/Linux shells evenals microsoft powershell, werken met bestandsnamen, jokertekens of wild-cards, piping, redirection, command substitution, shell variables en controle structuren voor conditionele testen en iteraties (if, case, ...).
     
    Er zijn in de loop der jaren vele soorten shells en cli's verschenen en verdwenen, en ook nu worden er nog nieuwe ontwikkeld.
     
    Ontwikkeld door Stephen Bourne bij Bell Labs, was de Bourne shell de standaard shell voor Unix-versie 7. De meeste Unix-achtige systemen hebben nog steeds een /bin/sh , soms nog de authentieke Bourne shell, maar meestal een symbolische link naar een compatibele shell.
     
    Omwille van intellectuele eigendomsrechten is de bourne shell in LINUX en open-source-BSD systemen vervangen door zijn GNU-versie: bash, Bourne again shell. Bash is geschreven door Brian Fox en uitgebracht in 1989. Op dit ogenblik (2016) heeft bash heeft een overweldigend aandeel als meest gebruikte shell. Microsoft heeft in 2016 bekend gemaakt dat aan Windows10 een Linux-subsysteem is toegevoegd waarin Bash volledig ondersteund wordt, en waarin andere Ubuntu binaries native kunnen werken.
    user@box ~ $ bash --version
    bash --version
     
    GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)
    Copyright (C) 2013 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software; you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.

    wikipedia: bash shell
    wikipedia: Bourne Shell
     

  2. wat is een script
     
    Als je commando's automatisch vanuit een bestand laat uitvoeren, noem je dat bestand een shell-script, of gewoon een script.
     
    We hebben in de inleiding op linux al enkele scripts gemaakt ... o.a. in het hoofdstuk over permissions hebben we een kort script uitvoerbaar gemaakt:
     
    Maak je een file kubus: $ pico kubus
    inhoud van kubus: "xcalc & xclock &"
    Maak kubus executable met het commando: $ chmod +x kubus
    Kijk met ls of de kleur veranderd is in groen (linux mint, ubuntu)

     
    Dat script voerde twee grafische programma's uit: xcalc en xclock, al had het in normale omstandigheden weinig zin om beide aan mekaar te knopen in een script.
     
  3. een eerste voorbeeld:
     
    Ons eerste script wordt een script waarmee we op informatie worden verwelkomd als we het uitvoeren. Even verder, in punt 4 steken we ons script op een andere plaats, waardoor we, telkens als we inloggen, die nuttige informatie te zien krijgen.
     
    We rijgen de volgende commando's aan mekaar: date: wat is tijd en datum, who: wie is er ingelogd en fortune: een ludieke zinsnede.
    Dat doen we als volgt:
     
    $  pico dwf
    date
    who
    fortune

    ... en we maken dit script executable:
     
    $ chmod +x dwf
     
    ... nu kunnen we het ook uitvoeren:
     
    $ ./dwf
    Mon Jun 21 09:46:08 CEST 2010
    user tty7 2010-06-21 07:25 (:0)
    user pts/0 2010-06-21 09:16 (:0.0)
    In the stairway of life, you'd best take the elevator.

     
    Probeer dit nu zelf uit ...