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