|
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
bv: lsmod, lsusb …
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
grep : zoek stuk tekst in ..
bv grep -nR zoekmij *.html
Bestandsarchief maken:
tar -cvf bestandslijst
c = create v = verb f = file
met z = zip om te comprimmeren
file : geeft bestandsformaat
Bestanden uitpakken
uitpakken naar huidige dir,
Gzipped files:
tar xzvf /mnt/cdrom/prog-1.02.tgz
Bzipped files:
tar xzvf –bzip2 /mnt/cdrom/prog-1.02.tar.bz2
compile, install
./configure –help
(toont opties)
./configure
make
su -c “make install”
of als root:
make install
apt tools
apt-get install package
-s simulate only
apt-get update
apt-get upgrade
apt-get dist-upgrade
apt-get remove package
apt-get –purge remove packages
apt-cache search deelvannaam
dpkg -s package
dpkg -S fileofwichpackage
apt-file list package
apt-file search file
|
< ! tussen kolom 1 en 2>
|
Strukturen, bestanden, redirect
Struktuur: while ; do done
Struktuur: case in ) ;; ) ;; *) ;; esac
case ” ” in
” “)
(commando)
(commando);;
” “)
(commando);;
(commando);;
esac
|
|
case ” ” in
” ” | ” “)
(commando);;
*)
(commando);;
esac
* dient hier als joker
| betekent “logische of” (or)
|
Struktuur: if;then;elif;then;else;fi
if (voorwaarde) ;then
_ (commando)
_ (ev. exit 1/0)
fi
|
|
if (opdracht) ; then (opdracht) ;
_ [ elif (opdracht); then (opdracht) ;]
_ [ else (opdracht); ]
|
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:
n -eq m |
rek. vergelijken |
n -lt m |
less than |
n -ne m |
not equal |
n -le m |
less or equal |
! (expr) |
not |
n -gt m |
greater than |
(exp) -a (exp) |
and |
n -ge m |
greather or eq. |
(exp) -o (exp) |
or |
|
|
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
entry |
own-grp-wrld |
n |
name |
group |
size |
date |
filename |
dir |
d rwx r-x r-x |
5 |
jos |
adm |
1024 |
Feb 24 2000 |
Desktop |
dir |
d rwx r-x r-x |
4 |
jos |
adm |
1024 |
Nov 20 11:14 |
public_html |
dir |
d rwx r-x r-x |
2 |
jos |
adm |
1024 |
Nov 22 11:14 |
shellbook |
file |
– rw- r– r– |
1 |
jos |
adm |
761 |
Jun 16 13:04 |
status.html |
file |
– rw- — — |
1 |
jos |
adm |
9608 |
Apr 19 1999 |
.mc.menu |
d=dir f=file c=char b=block app p=pipe app
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
Kanaal |
nr |
apparaat |
opm |
stand. in |
0 |
toetsenbord |
|
stand. uit |
1 |
monitor |
|
fout uit |
2 |
monitor |
|
commando verder uitvoeren (achtergrond)
– maar er niet op wachten (en al wel een volgend uitvoeren)
– of op desktop commando geven in terminal en dan terminal sluiten terwijl het proces dat gestart is verder loopt (normaal zou het als child process mee gesloten worden met de terminal)
1. Niet wachten/achtergrond ampersand
doSomeThing &
doOtherThing &
bv: start webserver en start mysql
2. Niet afsluiten nohup
nohup doSomething &
bv: nohup kate &
en dan bv terminal sluiten.
|
Onderhoud, informatie
/etc/init.d/serverd start|stop|restart
algemeen voor serverdiensten
rpm -i pakketnaam.rpm
algemeen installeren rpm (RH)
rpm -qa | grep pakketnaam.rpm
is pakket geinstalleerd (RH)
tar xvzf pakketnaam.tar.gz
(source) pakket uitpakken
ps -ef | grep procesnaam
controleer draaiend proces, id
nslookup
daarna krijg je een prompt waar je domeinnaam.tld kan typen, of opties:
>set type=mx
om bv mail records op te vragen
>domain.tld
>exit verlaat nslookup prompt
host
less /etc/resolv.conf
dns client instelling
.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
|
|