|
|
|
Bourne Again SHell Keys: CTRL-C : uit script TAB : aanvullen TAB TAB : toont mogelijkheden CTRL X ( : macro opnemen CTRL X ) : macro opgenomen CTRL X e : macro uitvoeren CTRL U : del lijn links CTRL W : del woord links CTRL K : del lijn rechts Tekens: $ parameter ~ user, user dir @ computer # userpromt - argument -- arg. nonoption . onzichtbaar bestand * ? jokers zien geen . >> afleiden uitvoer << invoer nemen van Algemeen -v verbose=uitleg set +C = clobber:overschrijven set -C = noclobber shopt -s dotglob : shell option (om verborgen bestanden mee te globben) Commando's bestaat bashcommando: type -a commando clear : scherm leegmaken cat file: toont bestand head -n : eerste n regels tail -n :laatste n regels pwd: working dir ls -a -l : alle+info echo $? : laaste foutwaarde chmod + x file : w. uitvoerbaar env of printenv : omgev.var expr 1 + 2 : geeft "3" op scherm rm -i / -f :verwijder met/z. info wc : tel tekens/woorden/zinnen tar -cvf bestandslijst c = create v = verb f = file file : geeft bestandsformaat
Bestanden uitpakken |
Strukturen, bestanden, redirect Struktuur: while ; do done
Struktuur: if;then;elif;then;else;fi
Testen met test of [ ... ] (bestandnaam, str, getal) vb [ -d /qqq ] : in bash spatie achter [ _ en voor _ ] vb test -d /qqq : 0 is ok, 1 is fout: echo $? Volgorde v/h uitvoeren met ( ) in shell door /( en /) test-_ (file) of (dir) -f bestaat, -d is dir test-_ (file) -r -w -x read write execute toegang test -z str zero, leeg, -n str niet leeg str1 = str2 gelijk test getallen n,m rekenkundig vergelijken:
Globbing: oplossen van Wildcards of jokers Onderlingen verschillen tussen shells mogelijk! Echo * (in directory, ipv ls bv) ? : vervangt exact 1 teken op die plaats * : vervang 0 tot max_bestandsnaam_lengte tekens (dos stopt * pas aan een punt, hier niet: ls p*h.txt) [1-3] : tekenreeks op te vervangen plaats, ook [a-cx-z] [!1-3] : ! als omkering (not) ook hoedje kan ^ Brace Extension {x,y} : ls k{i,y}r kir en kyr worden getoond Rechten in linux
n = counter, teller Onderscheid bestand en programma chmod +x dient om bestand uitvoerbaar te maken, bv shell script menu.sh rw- r-- r-- waarop chmod +x menu.sh heeft als resultaat rwx r-x r-x Redirect: leiden van uitvoer en invoer Vanuit bestand gegevens halen ipv input op command line Onderdrukken soort echo in bv wc -l < tekst.txt Foutmelding en resultaten onderscheiden sturen Afleiden om niet te zien: > /dev/null
|
Scripting(/scripts/scriptmenu.txt) $0 variabele: bestandsnaam $ variabelen 1-9 parameters # commentaar ${ } var scheiden van txt $# aantal parameters in script Quoting:" ' ` double or single quotes, backticks " " tekst > 1 woord ' ' tekst letterlijk uit te voeren commando | logische of (or) in case-struc var=" " tekst >1 woord toekennen exit 0 foutwaarde, 0=ok Let ook: path nakijken, dir van uitvoeren script! in subshell uitvoeren: script.sh als root: ./script.sh geen subshell, sourcen "."): . ./script.sh .inputrc in homedir /etc/magic bestandsformaten (naam kan varieren vlgs distr) Root: vanuit user : su root (password) ./script ipv script (system logs) tail -f /var/log/messages |