Umleiten von Terminal-Ein- und Ausgabe
Von der Befehlszeile aus kannst du die Ein- und Ausgabe eines Befehls in eine Datei oder zu einem anderen Befehl umleiten.
Leite die Ausgabe eines Befehls um, wenn du die Ergebnisse der Befehlsausführung protokollieren und für die spätere Verwendung in einer Datei ablegen möchtest. Auf ähnliche Weise kannst du die Eingabe einer Datei an den Befehl weiterleiten, wenn du für den Befehl vorab definierte Eingabedaten bereitstellen möchtest, anstatt diese manuell einzugeben.
Verwende die folgenden Zeichen, um Ein- und Ausgabe weiterzuleiten:
Umleitung | Beschreibung | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
> | Mit einer rechten spitzen Klammer leitest du die Befehlsausgabe in eine Datei um. | ||||||||||
< | Mit einer linken spitzen Klammer verwendest du den Inhalt einer Datei als Eingabe für den Befehl. | ||||||||||
>> | Mit zwei rechten spitzen Klammern wird die Ausgabe eines Befehls an eine Datei angefügt. |
Zusätzlich zur Dateiumleitung kann die Ausgabe eines Befehls auch in die Eingabe eines anderen Befehls geleitet werden. Dazu verwendest du den senkrechten Strich, auch Pipe-Symbol genannt. Du kannst auf diese Weise Befehle kombinieren, um komplexere Versionen derselben Befehle zu implementieren.
So übergibt z. B. der Befehl
man bash | grep commands
den formatierten Inhalt der man-Seite von bash
an das Programm grep
, das diesen Inhalt nach Zeilen durchsucht, die das Wort commands enthalten. Das Ergebnis besteht aus einer Liste, die Zeilen mit dem angegebenen Text anstelle der vollständigen man-Seite enthält. Weitere Informationen über das Umleiten findest du auf der man-Seite für bash
.
Zu den standardmäßige Pipes gehören:
stdin: Die Standardeingabe-Pipe befindet sich dort, wo der Befehl seine Eingabe empfängt. Standardmäßig gibst du die Eingabe über das Befehlszeilenprogramm ein. Du kannst die Ausgabe von Dateien oder anderen Befehlen zu stdin weiterleiten.
stdout: Die Standardausgabe-Pipe befindet sich dort, wohin die Befehlseingabe gesendet wird. Standardmäßig wird die Befehlsausgabe an die Befehlszeile gesendet. Du kannst die Ausgabe von der Befehlszeile zu anderen Befehlen und Programmen weiterleiten.
stderr: Die Standardfehler-Pipe befindet sich dort, wohin die Fehlermeldungen gesendet werden. Standardmäßig werden Fehler zusammen mit der Standardausgabe in der Befehlszeile angezeigt.