Linux Shell - Befehlsübersicht
Hier stelle ich ein paar Shellbefehle und ihre Verwendung anhand von Beispielen dar. Diese Übersicht soll kein Tutorial oder ähnliches darstellen. Sie dient in erster Linie als Merkzettel für mich. Das soll aber den interessierten Leser auf keinen Fall abhalten sich hier ein wenig umzuschauen. Vielleicht ersparts denn doch das Googlen.
- Schleifen
- Bildbearbeitung mit Imagemagick
- bc - Rechnen auf der Konsole
- Gnuplot
- dd - disk dump
- Ausgabe eines Programm als Argument verwenden
Schleifen
for - Schleife
for i in *.png; do convert $i $(basename $i .png).bmp; done
for ((i=0;i<9;i++)); do echo $i; done
for i in Hans Wurst; do echo $i; done
i=0;for bild in *.png; do cp $bild img_$i; i=$(echo "$i+1" | bc); done
Imagemagick
Metainformationen abrufen
$ identify -verbose bild.jpg
Dateiformat ändern
convert bild.jpg bild.png
Ändern der Größe
$ convert -resize 640 source.jpg target.png
Bild drehen (Drehwinkel in Grad und im Uhrzeigersinn)
$ convert -rotate 90 source.jpg target.png
bc - Rechnen auf der Konsole
Bei bc handelt es sich eigentlich um einen Ganzzahl - Konsolen Taschenrechner. Wenn bc mit dem Parameter -l
gestartet wird, dann wird eine Biblithek mit reichlich Gleitkommaunterstützung geladen.
Aufruf: $ bc -l
Die Operationen können entweder am bc Prompt direkt oder per echo Befehl übergeben werden. Beim echo wird ein Zeilenumbruch durch ein Semikolon abgebildet.
Aufruf: | $ echo '10/3;2.5*2' | bc -l |
Antwort: | 3.33333333333333333333 |
5 |
Umrechnung zwischen Zahlensystemen
Mit den Befehlen ibase bzw. obase kann die Eingangs- und die Ausgangszahlenbasis gesetzt werden. ACHTUNG: Wenn die Eingangsbasis gesetzt ist, dann erfolgen alle folgenden Zahlenangaben (auch das Setzen der Ausgangsbasis) im Format der Eingangsbasis. (Also: echo 'ibase=2;obase=10;11' | bc liefert 11 während echo 'obase=10;ibase=2;11' | bc 3 liefert. Alles klar? ;-)
Beispiele:
Aufruf | Antwort |
---|---|
echo 'ibase=16;C' | bc | 11 |
echo 'obase=16;ibase=2;1111' | bc | F |
echo 'obase=8;ibase=16;12' | bc | 22 |
echo 'ibase=2;1001' | bc | 9 |
Wichtige Funktionen
Ich habe bereits auf die Online - Hilfe für bc verwiesen. Ich möchte trotzdem noch einmal paar wichtige
Funktionen aufführen.
l(x)
=> ln(x)
sqrt(x)
x^1/2
s(x)
sin x (x in rad)
c(x)
cos x (x in rad)
Gnuplot
Gnuplot ist eigentlich ein skript- bzw. kommandozeilengesteuerter Funktionenplotter und hat bei den Shell Befehlen nicht zu suchen. Da mir aber noch keine bessere Strukturierung eingefallen ist, sei hier auf eine eigene Beschreibung verwiesen.
dd - disk dump
man: dd - konvertiert und kopiert eine Datei
Ich benutze dd meist zum Erzeugen von Testdateien einer definierten Größe. Da der Inhalt nicht so wichtig ist,
benutze ich /dev/zero als Datenquelle. D.h. die Zieldatei wird mit 0x00 befüllt.
dd if=/dev/zero of=test.dat bs=1k count=10
10kB Datei
dd if=/dev/zero of=test.dat bs=1M count=5
5MB Datei
dd if=/dev/zero of=test.dat bs=110174 count=1
110174B Datei
Ausgabe eines Programm als Argument verwenden
Wenn man die Ausgabe eines Programmes als Argument für andere Befehle benutzen will, kann man das folgendermaßen
tun
touch $(date +%Y-%m-%d).txt
Die Shell wertet zunächst den Befehl date +%Y-%m-%d (liefert aktuelles Datum im Format YYYY-mm-dd) aus. Anschließend
wird der touch auf die Datei DATUM.txt ausgeführt.
Neben der Variante $(programm) existiert noch die ältere Variante mit Backticks (`)
MYDIR=`pwd`
Speichert das aktuelle Verzeichnis in der Variable $MYDIR.