Wie leite ich die Standardeingabe, Standardausgabe und Standardfehlerausgabe um?

Bildschirminhalt in eine Datei kopieren (Befehle capture und script)
Programmausgabe anzeigen und in eine Datei kopieren (Befehl tee)
Ausgabe umleiten und an eine Datei anfügen
Ausgabe in eine Datei umleiten
Standardfehlerausgabe und andere Ausgaben umleiten

Bildschirminhalt in eine Datei kopieren (Befehle capture und script)

Mit dem Befehl capture werden über die Emulation eines Terminals VT100 alle Daten, die am Bildschirm ausgegeben werden, in eine Datei kopiert.

Mit dem Befehl script können Sie alle Ausgaben an Ihrem Terminal in eine Datei kopieren, ohne ein VT100-Terminal emulieren zu müssen.

Beide Befehle sind zum Ausdrucken von Datensätzen in Terminaldialogen hilfreich.

Geben Sie Folgendes an der Eingabeaufforderung ein, um den Bildschirminhalt eines Terminals mit VT100-Emulation zu erfassen:

capture screen.01

Drücken Sie die Eingabetaste.

Folgende oder ähnliche Informationen werden angezeigt:

Befehl capture gestartet. Die Datei ist Bildschirm.01.
Verwenden Sie ^P, um dem Bildschirminhalt in Datei Bildschirm.01 auszugeben.
Sie emulieren ein Terminal vt100.
Weiter mit beliebiger Taste.

Nach der Eingabe von Daten und Ausgabe des Bildschirminhalts können Sie den Befehl capture mit der Tastenfolge Strg-D oder mit dem Befehl exit stoppen. Folgende oder ähnliche Informationen werden angezeigt:

Befehl capture ist abgeschlossen.
Die Datei ist Bildschirm.01.
Die Emulation eines Terminals vt100 ist NICHT MEHR aktiv.

Mit dem Befehl cat kann der Inhalt der Datei angezeigt werden.

Geben Sie Folgendes an der Eingabeaufforderung ein, um den Bildschirminhalt eines Terminals zu erfassen:

script

Drücken Sie die Eingabetaste.

Folgende oder ähnliche Informationen werden angezeigt:

Der Befehl script wurde gestartet. Die Datei ist typescript.

Der gesamte am Bildschirm angezeigte Inhalt wird jetzt in die Datei typescript kopiert.

Zum Stoppen des Befehls script drücken Sie die Tastenfolge Strg-D oder geben Sie den Befehl exit ein. Folgende oder ähnliche Informationen werden angezeigt:

Die Ausführung des Befehls script ist beendet. Die Datei ist typescript.

Mit dem Befehl cat kann der Inhalt der Datei angezeigt werden.

Programmausgabe anzeigen und in eine Datei kopieren (Befehl tee)

Wenn der Befehl tee mit einer Pipe verwendet wird, liest er die Standardeingabe und schreibt dann die Ausgabe eines Programms in die Standardausgabe und kopiert sie gleichzeitig in die angegebenen Dateien. Mit dem Befehl tee können Sie die Ausgabe sofort anzeigen und gleichzeitig zur späteren Verwendung speichern.

Geben Sie beispielsweise Folgendes ein:

ps -ef | tee program.ps

Drücken Sie die Eingabetaste.

Daraufhin wird die Standardausgabe des Befehls ps -ef am Bildschirm angezeigt und gleichzeitig eine Kopie dieser Ausgabe in der Datei program.ps gespeichert. Falls die Datei program.ps bereits vorhanden ist, wird sie gelöscht und neu erstellt, sofern die Option noclobber des integrierten Befehls set nicht definiert ist.

Geben Sie beispielsweise Folgendes ein, um die Ausgabe eines Befehls anzuzeigen und in einer bereits vorhandenen Datei zu speichern:

ls -l | tee -a program.ls

Daraufhin wird die Standardausgabe von ls -l am Bildschirm angezeigt und gleichzeitig eine Kopie dieser Ausgabe an das Ende der Datei program.ls angefügt.

Folgende oder ähnliche Informationen werden angezeigt. Die Datei program.ls enthält dieselben Informationen:

-rw-rw-rw-   1 jones   staff   2301   Sep 19    08:53 161414
-rw-rw-rw-   1 jones   staff   6317   Aug 31    13:17 def.rpt
-rw-rw-rw-   1 jones   staff   5550   Sep 10    14:13 try.doc

Ausgabe umleiten und an eine Datei anfügen

Wenn Sie am Ende eines Befehls >>Dateiname hinzufügen, wird die Ausgabe des Befehls der angegebenen Datei hinzugefügt. In der Datei bereits vorhandene Daten werden nicht überschrieben. Das Symbol >> ist im Allgemeinen als Operator für Umleitung mit Anfügen bekannt.

Geben Sie Folgendes ein, um beispielsweise der Datei1 die Datei2 anzufügen:

cat Datei2 >> Datei1

Drücken Sie die Eingabetaste.

Anmerkung: Falls die Datei Datei1 nicht vorhanden ist, wird sie erstellt, sofern die Option noclobber des integrierten ksh-Befehls oder csh-Befehls set nicht gesetzt ist.

Ausgabe in eine Datei umleiten

Sie können die Ausgabe eines Prozesses in eine Datei umleiten, indem Sie mit dem Befehl einen Dateinamen eingeben. Wenn Sie beispielsweise die Ergebnisse des Befehls who in eine Datei mit dem Namen users umleiten möchten, geben Sie den folgenden Befehl ein:

who > users

Drücken Sie die Eingabetaste.

Anmerkung: Wenn die Datei users bereits vorhanden ist, wird diese gelöscht und neu angelegt, sofern Sie nicht die Option noclobber des integrierten ksh- (Korn-Shell) oder csh-Befehls (C-Shell) set verwenden.

Geben Sie zum Anzeigen des Inhalts der Datei users Folgendes ein:

cat users

Drücken Sie die Eingabetaste.

Eine Liste wie die folgende wird angezeigt:

denise    lft/0 Mai 13 08:05
marta     pts/1 Mai 13 08:10
endrica   pts/2 Mai 13 09:33

Standardfehlerausgabe und andere Ausgaben umleiten

Wenn Sie die Standardfehlerausgabe oder eine andere Ausgabe umleiten möchten, müssen Sie einen Dateideskriptor verwenden. Bei einem Dateideskriptor handelt es sich um eine Nummer, die jeder Ein-/Ausgabedatei, die von einem Befehl verwendet wird, zugeordnet wird. Dateideskriptoren können auch zum Umleiten der Standardeingabe und -ausgabe verwendet werden. Die folgenden Nummern sind Standardeingabe, Standardausgabe und Standardfehler zugeordnet:

0 Standardeingabe (Tastatur)
1 Standardausgabe (Bildschirm)
2 Standardfehler (Bildschirm)

Geben Sie zum Umleiten der Standardfehlerausgabe die Nummer 2 für den Dateideskriptor vor den Umleitungssymbolen für Ausgabe oder Anhängen (> oder > >) und einen Dateinamen hinter dem System ein. Der folgende Befehl beispielsweise hängt die Standardfehlerausgabe des Befehls cc, der die Datei testfile.c kompiliert, and das Ende der Datei ERRORS an:

cc testfile.c 2 >> ERRORS

Jede Ausgabe, der ein Dateideskriptor von 0 bis 9 zugeordnet ist, kann umgeleitet werden. Schreibt der Befehl cmd z. B. die Ausgabe in Dateideskriptor 9, kann diese Ausgabe mit dem folgenden Befehl in die Datei savedata umgeleitet werden:

cmd 9> savedata

Wenn ein Befehl in mehrere Ausgaben schreibt, können diese unabhängig voneinander umgeleitet werden. Beispiel: Ein Befehl leitet seine Standardausgabe an Dateideskriptor 1, die Fehlerausgabe an Dateideskriptor 2 und erstellt eine Datendatei mit Dateideskriptor 9. Mit der folgenden Befehlszeile werden diese Ausgaben jeweils in eine andere Datei umgeleitet.

command > standard 2> error 9> data