Kommandozeilenbefehle für Linux/Unix/Cygwin

von Frank Gerlach(frankgerlach.tai@gmx.de)

Über diese Seite

Diese Seite dokumentiert nützliche bash-Befehle zur Systemadministration, Datenanalyse und Softwareentwicklung.

Datei mittels ssh sicher auf einen anderen Rechner kopieren

scp index.html pi@fgw.ddnss.de:/var/apache/htdocs

SSH Port Forwarding/Tunneling mittels SSH

ssh -L 9050:localhost:9050 pi@fgw.ddnss.de

Datei in kleinere Teile aufspalten

Das folgende Kommando zerlegt eine grosse Datei in Teile von 9 Mio Oktets oder weniger. Diese Teile können dann z.B. per Email versendet werden.

$ split -b 9000000 Grossedatei.zip 

Datei zusammenfügen

$ cat xa* > Grossedatei.zip

Alle Zeilen mit bestimmtem Inhalt in einer Logdatei zählen

$ egrep "Fehler .* in Modul AD Wandler" logdatei.txt|wc -l

Alle Dateien mit einem bestimmten Namensmuster durchsuchen

$ egrep "define CPUTYP MSP.43" `find . -name "*.h"`

Rekursiv bestimmte Dateien löschen

$ rm `find . -name "*.h"`

Dateien automatisiert editieren

Ersetze das Wort Hund durch das Wort Katze in allen Dateien, welche ein gewisses Namensformat haben. Dazu werden die Kommandos Stream Editor (sed) und Find Files(find) benutzt.

$ sed "s/hund/katze/g" `find . -name tiergeschichten*.txt"`

sed - Regex-Ausdruck Einlesen und Nutzen

Lese ein Regex-Muster und gebe es danach wieder aus

$ ls *ai|sed  "s/&\uml;(.*&\uml;)/compile &\uml;1/g"

Eine Spalten-Datei sortieren nach der zweiten Spalte; Doppler löschen

$ sort -t ";" -k2 datei.csv|uniq > sortiert.csv

Histogramm erstellen

Hier wird zuerst gefiltert nach dem Schlüsselwort "Systemausfall" am Zeilenanfang. Danach werden nur die Spalten 2,3 und 7 extrahiert. Das Ergebnis dieser Operationen wird dann alphabetisch sortiert und zum Schluss die Menge identischer Zeilen bestimmt. Mittels eines weiteren sort-Filters könnte man noch das Ergebnis numerisch sortieren, wird hier aber zwecks Klarheit weggelassen.

$  grep "^Systemausfall"|cut -d ";" -f2,3,7|sort |uniq -c

Eine Datei mittels GNUpg verschlüssen (symmetrischer Schlüssel)

$ gpg --symmetric datei.txt

Zuletzt geänderte Dateien in einem Verzeichnisbaum finden

ls -lt --full-time * */* */*/* */*/*/*|egrep "(.c$)|(.h$)"|less

Programmgesteuerte Auswertung von Textdateien

Für diesen Fall ist die Benutzung einer Programmiersprache wie Perl empfehlenswert, da diese eine sauber definierte Grammatik und eine hohe Laufzeiteffizienz hat. Von der Benutzung der bash-Shell als Programmierumgebung rate ich eher ab. Die Grammatik von bash ist eher irreführend als klar.

Umwandeln einer CSV Tabelle in eine html-Tabelle


sed "s/,/&&\uml;uml;&&\uml;uml;<&&\uml;uml;&&\uml;uml;/td&&\uml;uml;&&\uml;uml;>&&\uml;uml;&&\uml;uml;/g" ITA_Leute.html |sed "s/^/&&\uml;uml;&&\uml;uml;&&\uml;uml;&&\uml;uml;/g"|sed "s/&&\uml;uml;r//g"|sed "s/$/&&\uml;uml;&&\uml;uml;<&&\uml;uml;&&\uml;uml;/td&&\uml;uml;&&\uml;uml;>&&\uml;uml;&&\uml;uml;<&&\uml;uml;&&\uml;uml;/tr&&\uml;uml;&&\uml;uml;>/g"

Impressum

Datenschutz-Erklärung

Impressum