Jedes Kommando kann drei Kanäle für Eingabe oder Ausgabe verwenden:
Standardausgabe. Dies ist der Standardausgabe-Kanal. Immer wenn ein Kommando eine Ausgabe erzeugt, verwendet es den Standardausgabe-Kanal.
Standardeingabe. Wenn ein Kommando Eingaben von Benutzern oder anderen Kommandos benötigt, verwendet es diesen Kanal.
Standardfehler. Kommandos verwenden diesen Kanal zum Melden von Fehlern.
Zum Umlenken dieser Kanäle bestehen folgende Möglichkeiten:
Kommando > Datei
Speichert die Ausgabe des Kommandos in eine Datei; eine etwaige bestehende Datei wird gelöscht. Beispielsweise schreibt das Kommando ls seine Ausgabe in die Datei listing.txt
:
ls > listing.txt
Kommando >> Datei
Hängt die Ausgabe des Kommandos an eine Datei an. Beispielsweise hängt das Kommando ls seine Ausgabe an die Datei listing.txt
an:
ls >> listing.txt
Kommando < Datei
Liest die Datei als Eingabe für das angegebene Kommando. Beispielsweise liest das Kommando read den Inhalt der Datei in die Variable a
ein:
read a < foo
Kommando1 | Kommando2
Leitet die Ausgabe des linken Kommandos als Eingabe für das rechte Kommando um. Beispiel: Das Kommando cat gibt den Inhalt der Datei /proc/cpuinfo
aus. Diese Ausgabe wird von grep verwendet, um nur diejenigen Zeilen herauszufiltern, die cpu
enthalten:
cat /proc/cpuinfo | grep cpu
Jeder Kanal verfügt über einen Dateideskriptor: 0 (Null) für Standardeingabe, 1 für Standardausgabe und 2 für Standardfehler. Es ist zulässig, diesen Dateideskriptor vor einem <
- oder >
-Zeichen einzufügen. Beispielsweise sucht die folgende Zeile nach einer Datei, die mit foo
beginnt, aber seine Fehlermeldungen durch Umlenkung zu /dev/null
unterdrückt:
find / -name "foo*" 2>/dev/null