unix bash-shell befehle spickzettel
bash-shell befehle, die immer wieder gebraucht werden:
dns einträge testen, ip von server sehen:
1 2 3 4 |
# ip und aliase zeigen host www.meinedomain.ch # nach ip auflösen über bestimmten dns host www.domain.ch ns1.taywa.net |
tar.gz dateien packen/anlegen bzw. entpacken:
1 2 3 4 5 6 7 |
# rechte und symlinks bleiben beim packen/entpacken erhalten # # komprimieren (.tgz oder .tar.gz - eigentlich dasselbe): tar czfv dateiname.tgz ordnername/* # # entpacken: tar xfvz dateiname.tar.gz |
symbolic link anlegen:
1 2 3 |
# wenn "linkname" nicht angegeben wird, # bekommt der link den namen des zielordners ln -s pfad/zum/ziel linkname |
rechte rekursiv ändern:
1 2 3 4 |
# rekursiv für user(owner), gruppe und others schreibrechte hinzufügen chmod -R ugo+w * # gruppe und others schreibrechte wegnehmen: chmod go-w ordnername |
shellscript „for“ schlaufe mit gefundenen dateinamen:
1 2 |
# bilder mit mask.png maskieren und in ordner "res" speichern: for i in $(ls *.png); do composite -compose CopyOpacity ../mask.png $i res/$i ; done |
rekursiv string in dateien suchen:
1 2 |
# wird nur * angegeben, sucht es im aktuellen verzeichniss: grep -R 'string' /path/to/files/* |
befehl rekursiv auf mit regex ausgewählte dateien anwenden (mit dem vorteil, erstmal einen dry-run ohne befehl zu machen zu können um die regex zu testen):
1 2 3 4 |
# find . findet alles rekursiv # grep regular expression für dateinamen: ende$ ^beginn # xargs befehl nimmt den pfad als parameter für den befehl find . | grep ext$ | xargs rm |