Hieronder even wat handigheidjes die ik maar niet kan onthouden... ;-)
Tabs vervangen door spaties:
cat bestand.txt | tr '\011' ' '
(In dit voorbeeld is \011 een tab)
Meerdere spaties vervangen door een enkele:
cat bestand.txt | tr -s ' ';
3e woord van iedere regel weergeven:
cat bestand.txt | awk '{print$3}'
Zoeken naar string in 't 3e woord van iedere zin:
cat bestand.txt | awk '$3 == woord'
of:
cat bestand.txt | awk '$3 ~ /[a-z]/'
Reeks getallen weergeven
Handig voor gebruik in een for-loop:
seq 5 15
Bovenstaand voorbeeld geeft alle getallen van 5 t/m 15. Onderstaande geeft gewoon alles van 1 tot 15:
seq 15
Getal in variabele met 1 ophogen
Rekenen met bash is best lollig. Stel $joop heeft waarde "3". Deze kun je bijvoorbeeld ophogen met:
joop=$[$joop+1]
De waarde van $joop is nu 4.
Als je een getal met waarde 1 wilt ophogen kan het echter nog veel sneller:
((joop++))
Bestandsnaam bij inode nummer zoeken:
find / -inum XXXXXX -print
Zoeken binnen gzip gecomprimeerde logbestanden
Jaaaahhh, daar hebben wij onder andere zgrep, zcat en zless voor! ;-)
Extensie van meerdere bestanden wijzigen
Hiervoor is het basename commando erg handig. Voorbeeldje:
find -name *doc -exec mv {} `basename {} .doc`.txt \;
IP-adressen sorteren met 'sort'
Je kunt een delimiter opgeven en per veld sorteren, bij een ip-adres wordt dat dan een punt:
ip a | grep inet | awk '{print$2}' | cut -d'/' -f1 | sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4
TCP poortje tunnelen via SSH
Tunneltje maken zonder een shell open te moeten houden doe je met de -N switch, met -L bouw je het tunneltje:
ssh -N -L 8080:ww.xx.yy.zz:80 user@server &
Alle output redirecten naar /dev/null:
ssh -N -L 8080:ww.xx.yy.zz:80 user@server >/dev/null 2>&1 &