Hilfreiche Shellbefehle

Prozesse

Alle httpd und Apache Prozesse stracen

ps auxw | awk '/(apache|httpd)/{print "strace -F -p " $2}' | sh               # Anzeige auf sdt out
ps auxw | awk '/(apache|httpd)/{print "strace -o blubb.out -F -p " $2}' | sh  # schreibt in Datei blubb.out

Suchen, finden und ersetzen/löschen

Inhalte in Dateien suchen und Dateinamen mit Pfad anzeigen lassen. Sucht ab /home/foo nach dem Inhalt bar in jeder *.txt Datei

find  /home/foo -type f -name *.txt | xargs grep bar  # Lösung mit find
grep -rnwi '/home/foo' -e 'bar'  # Lösung mit grep (schneller), sucht in jeder Datei

Datei- und Ordnergröße ermitteln

du -cksh * |sort -g                   # ermittelt Ordnergröße
du -k -x / | sort -k 1n               # Gibt Ordner von Klein nach Groß aus
du -k -x / | sort -k 1n | tail -20    # Zeigt die 20 größten Ordner

Inhalte in allen Dateien suchen und ersetzen !!!Im Ordner und allen Unterordnern nach \\creutz.spdns.de
suchen und durch \\creutz.noip.me
ersetzen

find . -type f -exec perl -pi -e '~s/(?<![\w_\-@#.])creutz.spdns.de/creutz.noip.me/g' {} \;

Inhalte in allen Dateien suchen und löschen !!!Im Ordner und allen Unterordnern nach *.jpg suchen und löschen

find $DIR -name '*.345' -delete

Netzwerk Debugging

Zeige netstat Ausgabe alle zwei Sekunden

 watch -n 2 netstat -antu

Port unter Windows Powershell testen:

Test-NetConnection -ComputerName "192.168.1.10" -Port 80 -Timeout 1000

Berechtigungen

Berechtigung NUR an Ordnern ändern

find . -type d -exec chmod 755 {} \;

Dasselbe funktioniert natürlich auch mit Dateien

find . -type f -exec chmod 644 {} \;

Suche nach Eigentümer und Berechtigung

find /home/foo/  -user bar   # findet alles unter /home/foo/ was dem User bar gehört
find /home/foo/  -group bar  # findet alles unter /home/foo/ was der Gruppe bar gehört
find /home/foo/  -perm 644   # findet alles unter /home/foo/ mit der Berechtigung 644
find /home/foo/  -perm -644  # findet alles unter /home/foo/ mit mindestens der Berechtigung 644 oder höher

Dateien umbenennen

rename 's/small/winzig/' *.jpg    # sucht alle .jpg Dateien und tauscht small gegen winzig.
rename 's/\[KOPIE\]/aaa/' *.jpg   # tauscht alle Sonderasurücke [KOPIE] zu aaa.
rename 'y/A-Z/a-z/' *             # alle Zeichen sind danach klein
rename 's/ü/ue/' *                # tauscht Ü zu ue

Bildbearbeitung

Welches Format haben die Fotos

$ identify *.jpg

Bilder von jpg zu png konvertieren

convert bild1.jpg bild2.png                                 # ein Bild
for i in *.jpg; do convert $i `basename $i .jpg`.png; done  # alle Bilder

Bilder drehen

convert -rotate 90 bild2.jpg bild2.jpg                                   # ein Bild
for i in *.jpg; do convert -rotate 90  $i `basename $i .jpg`.jpg; done   # alle Bilder

Bilder beschriften

convert -font /usr/share/fonts/truetype/Comic_Sans_MS.ttf -pointsize 50 -fill grey -draw "text 300,500 'Hier den Text eingeben'" bild1.jpg bild1_beschr.jpg

Rahmen um das Bild

convert -mattecolor blue -frame 6x6 bild.jpg bild_rahmen.jpg                                   # ein Bild
for i in *.jpg; do convert -mattecolor blue -frame 6x6 $i `basename $i .jpg`_rahmen.jpg; done  # alle Bilder

Dies zeichnet um das Bild einen blauen Rahmen von 6 Pixel Breite und speichert es als *_rahmen.jpg. Das Bild vergrößert sich dadurch um 12 Pixel

Bilder verkleinern

convert -resize 1024x768 bild1.jpg bild1_s.jpg                                     # ein Bild
for i in *.jpg; do convert -resize 1024x768 $i `basename $i .jpg`_klein.jpg; done  # alle Bilder
convert -resize 20% bild.jpg bild_klein.jpg                                   # ein Bild
for i in *.jpg; do convert -resize 20% $i `basename $i .jpg`_klein.jpg; done  # alle Bilder

Alle *.jpg Bilder werden um 20% verkleinert und als *_klein.jpg gespeichert

#!/bin/sh
#
#
# hier liegen die bilder
mydir="/home/lucky/PICTURES/2005/Friends"
# dahin wechseln
cd $mydir
 
if [ ! -e newpic ];then
    # neues verzeichnis
    mkdir newpic
fi
# verzeichnis auslesen
for file in $(ls *.jpg)
do
    # hier kommt deine convert-function: bitte in man nachlesen
    convert -size 480x360 $file newpic/$file
done
exit 0

Slideshow erstellen

convert -delay 10 *.jpg film.mng

betrachten kann man den Film mit

animate film.mng

Videos mit transcode bearbeiten

Videos entwacklen: Mit dem ersten Befehl werden die “Wackeldaten” ausgelesen, mit dem zweiten wird das Video schließlich entwackelt.

transcode -J stabilize -i original.mov -y null,null -o dummy
transcode -J transform -i original.mov -y xvid -o entwackelt.avi

Netzwerk

Analysiere allen remote Traffic über ssh mit wireshark

 ssh root@HOST tcpdump -iany -U -s0 -w - "not port 22" | wireshark -k -i -

Wer ist aktuell mit mir verbunden?

 netstat -ntu|awk '{print $5}'|cut -d: -f1 -s|sort|uniq -c|sort -nk1 -r
 
## Filtere nach B-Class
netstat -ntu|awk '{print $5}'|cut -d: -f1 -s |cut -f1,2 -d'.'|sed 's/$/.0.0/'|sort|uniq -c|sort -nk1 -r
 
## Filtere nach C-Class
netstat -ntu|awk '{print $5}'|cut -d: -f1 -s |cut -f1,2,3 -d'.'|sed 's/$/.0/'|sort|uniq -c|sort -nk1 -r