$linux-kurs.euLinux lernen · verstehen · anwenden

Datenströme & Text

Aufbau18 min

stdin, stdout, stderr und Pipes

Unix-Programme werden besonders mächtig, wenn sie Daten über standardisierte Ein- und Ausgabeströme austauschen.

Nur wenn Sie diesen Button verwenden, wird Ihr Lernfortschritt lokal in diesem Browser gespeichert. Es erfolgt keine Übertragung an den Server.

Drei Standardströme

Ein Prozess startet typischerweise mit Standard Input (Dateideskriptor 0), Standard Output (1) und Standard Error (2). Die Shell kann diese Ströme verbinden oder in Dateien umleiten.

Terminal / Bash
command >output.txt
command 2>errors.txt
command >all.txt 2>&1

Pipes

Mit | wird die Standardausgabe eines Kommandos zur Standardeingabe des nächsten. So entstehen Verarbeitungsketten aus kleinen Werkzeugen.

Terminal / Bash
journalctl -p err | grep -i network | tail -n 20

Nicht unnötig cat verwenden

Viele Programme können Dateien direkt lesen. Statt cat file | grep pattern ist grep pattern file meist einfacher. Eine Pipe ist sinnvoll, wenn tatsächlich die Ausgabe eines vorherigen Verarbeitungsschritts weitergereicht wird.

Übung

Jetzt selbst ausprobieren

Leiten Sie stdout und stderr eines Kommandos in zwei verschiedene Dateien.

Lösung / Hinweis anzeigen

Beispiel: `(printf "ok\n"; ls /nicht-vorhanden) >out.txt 2>err.txt`.

Wissenscheck

Welcher Dateideskriptor steht für stderr?

Mit Trainer vertiefen

Dieses Thema als Schulung?

Auf linux-kurse.eu finden Sie Linux-, Administrations- und Bash-Schulungen von Bodenseo.

Linux-Schulungen ansehen