Linux Essentials / Macht der Kommandozeile
Umleitungen und Pipes
Michael Gisbers
2021-04-24
Einleitung
Auf den folgenden Slides sind die im Vortrag verwendeten
Kommandozeilen-Aufrufe hinterlegt.
Umleitung in eine Datei mit >
- Falls die Datei existiert wird sie überschrieben.
- Falls sie nicht existiert wird die Datei neu angelegt.
user@linux $ echo "Hallo Welt" >/tmp/datei.txt
Umleitung in eine Datei mit >>
- Falls die Datei existiert wird die Ausgabe angehangen.
- Falls sie nicht existiert wird die Datei neu angelegt.
user@linux $ echo "Hallo Welt" >>/tmp/datei.txt
Daten aus einer Datei einlesen
Mit <
werden Daten aus einer bestehenden Datei
gelesen.
user@linux $ cat < /tmp/datei.txt
Daten aus einem HERE Document lesen
Alle Daten zwischen HERE und HERE werden in die
Eingabe umgeleitet
user@linux $ cat <<HERE
Mein HERE document
geht bis
HERE
Daten aus der Kommandozeile einlesen
Die hinter dem <<<
eingegebenen Daten werden in
die Eingabe umgeleitet.
user@linux $ cat <<<"Dieser Text landet in der Eingabe"
Die unterschiedlichen Kanäle
- 0 - Standardeingabe
- 1 - Standardausgabe
- 2 - Fehlerausgabe
Alle Ausgaben nach /dev/null
umleiten
Statt eines Kanals können auch alle Ausgaben mittels
&
umgeleitet werden.
user@linux $ ls /tmp/nicht_existierende_datei &>/dev/null
Einen Kanal in einen anderen umleiten
Die Reihenfolge der Umleitungen ist entscheidend.
user@linux $ ls /tmp/nicht_existierende_datei >/dev/null 2>&1
Umleitung über eine pipe
Die Standardausgabe des ersten Befehls wird an die Standardeingabe
des nächsten Befehls weitergeleitet.
user@linux $ echo "HAL 9000" | tr A-Z B-ZA
Umleitung über eine named pipe
Die Standardausgabe des ersten Befehls wird an die Standardeingabe
des nächsten Befehls weitergeleitet. Dabei kann die pipe auch
einen Namen haben.
user@linux $ mkfifo "/tmp/pipe"
user@linux $ echo "HAL 9000" >/tmp/pipe &
user@linux $ tr A-Z B-ZA </tmp/pipe
user@linux $ rm "/tmp/pipe"