stdout (Standardausgabe)
100%

Text-Fu · Lektion 1

stdout (Standardausgabe)

Lerne, wie die Standardausgabe zum Terminal fließt und wie Bash sie in Dateien umleitet.

Programme kommunizieren über Ein- und Ausgabeströme. Die Standardausgabe, abgekürzt stdout, ist der Strom, über den ein Programm normalerweise seine regulären Ergebnisse ausgibt. In einem Terminal verbindet die Shell diesen Strom zunächst mit der Terminalanzeige.

In die Standardausgabe schreiben

Der Befehl echo schreibt seine Argumente nach stdout:

$ echo Hello World
Hello World

Stdout ist der Dateideskriptor 1. Diese Zahl wird nützlich, wenn du mehrere Ströme umleitest. Programme können außerdem über die Standardeingabe, stdin, und die Standardfehlerausgabe, stderr, verfügen; die nächsten Lektionen behandeln diese Ströme.

Wohin sendet echo Hello World ohne Umleitung normalerweise seine reguläre Ausgabe in einem interaktiven Terminal?

Eine Datei mit > ersetzen

Bash interpretiert > als Operator zur Ausgabeumleitung. Die Shell öffnet die Zieldatei und verbindet die Standardausgabe des Befehls mit ihr:

$ echo Hello World > peanuts.txt

Der Text erscheint nicht mehr im Terminal, weil stdout nun nach peanuts.txt fließt. Fehlt die Datei, wird sie von der Shell erstellt. Existiert sie bereits, leert die Shell sie vor der Ausgabe des Befehls; ihr vorheriger Inhalt geht verloren.

Prüfe das Ergebnis mit cat:

$ cat peanuts.txt
Hello World

notes.txt enthält bereits Text. Was bewirkt echo new > notes.txt?

Da die Shell das Ziel öffnet, bevor der Befehl läuft, solltest du den Pfad vor dem Drücken von Enter prüfen. Eine falsch geschriebene oder unbeabsichtigte vorhandene Datei kann selbst dann geleert werden, wenn der Befehl später fehlschlägt.

Mit >> an eine Datei anhängen

Verwende >>, wenn eine neue Standardausgabe hinter den vorhandenen Dateiinhalt gesetzt werden soll:

$ echo Another line >> peanuts.txt
$ cat peanuts.txt
Hello World
Another line

Wie > erstellt auch >> ein fehlendes Ziel. Der Unterschied besteht darin, wie eine vorhandene Datei geöffnet wird: >> hängt an, statt sie zu leeren.

Welcher Befehl fügt Finished am Ende von status.log hinzu, ohne vorhandenen Inhalt zu löschen?

Die Umleitung ist Aufgabe der Shell

Die Shell erkennt > und >>, entfernt die Operatoren aus den an das Programm übergebenen Argumenten, öffnet die Datei und richtet die Stromverbindung ein. Der Befehl selbst schreibt wie gewohnt in seine Standardausgabe.

Deshalb funktioniert dieselbe Umleitungssyntax mit vielen Befehlen:

$ pwd > current-directory.txt
$ ls -la >> directory-list.txt

Wer interpretiert normalerweise > in pwd > current-directory.txt?

Mit dieser Übung kannst du die Steuerung von stdout, stderr und stdin praktisch trainieren:

  1. Eingabe und Ausgabe in Linux umleiten – Steuere Standardausgabe, Standardfehler und Standardeingabe mit Operatoren wie >, >> und 2> sowie dem Befehl tee.

Lektion abgeschlossen

Sie haben stdout (Standardausgabe) abgeschlossen

Du kannst nun die Standardausgabe eines Befehls umleiten und Ersetzen von Anhängen unterscheiden.

  • Erkenne stdout als Strom für reguläre Befehlsergebnisse.

  • Ersetze einen Dateiinhalt mit >.

  • Bewahre vorhandenen Inhalt und hänge mit >> an.

  • Prüfe ein Ziel, bevor die Shell es öffnet.

Lernfortschritt speichern

Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.

Kostenloses Konto erstellen
Nächste Lektion
Zurück zu Text-Fu