Datenströme

Lesedauer 6 Minuten
Posted: Mi. 05.10.2022-18:00Updated: Do. 10.10.2024-19:55

 Datenströme sind ein mächtiges Werkzeug in der Linux-Welt, das die effiziente und flexible Verarbeitung von Daten ermöglicht. Sie werden in einer Vielzahl von Anwendungen eingesetzt, von der Kommandozeile bis hin zu Streaming-Diensten.

Standardkanäle / Datenströme (Streams)

Wenn man eine Datei mit dem Befehl nano oder less anzeigen lässt wird einem der Dateiinhalt auf dem

Bildschirm ausgegeben. Das sollte jedem klar, und auch nichts wirklich Besonderes, sein.

Bezeichnung Bedeutung
stdin (Kanal 0) Es steht für standard input, dies ist der oben beschriebene Eingabekanal bei welchem in der Regel die Daten über die Tastatur eingegeben werden.
stdout (Kanal 1) Dies steht für standard output und ist der Ausgabekanal bei dem in der Regel die Daten auf dem Bildschirm ausgegeben werden.
stderr (Kanal 2) Das hier ist der standard error Kanal, dort werden die Fehlernachrichten in der Regel auf dem Bildschirm ausgegeben.

Diese Standard Kanäle kann man jetzt auch in Dateien umleiten oder aus einer Datei heraus umgeleitet werden. Das heißt das man z.B. aus einer Textdatei über den stdin Kanal etwas einlesen kann, oder über den stdout Kanal kann man die Ausgabe von einem Befehl in eine Datei speichern.

Beispiele:

pwd 1> ausgabe.txt

Hier wird der Aktuelle Pfad mit dem Befehl pwd abgefragt und ausgegeben und diese Ausgabe wird über den stdout Kanal in die Datei ausgabe.txt geschrieben. Wenn davor etwas in der Datei stand wird dieser Inhalt überschrieben.

pwd 2> error.txt

Diesen Befehl kann man z.B. für einen Error Log verwenden, hier wird auch wieder der Aktuelle Pfad über pwd Abgefragt. Wenn bei dieser Abfrage ein Fehler entsteht wird dieser über den Kanal 2 (stderr) in die Datei error.txt geschrieben. Wie bei dem obenstehenden Befehl auch wird die error Datei überschrieben, wenn Bereits etwas darin steht.

pwd 1>> ausgabe.txt

Vom Grundgerüst sieht dieser Befehl ja fast gleich aus wie der Erste. Er macht auch fast genau das gleiche, er gibt wieder den aktuellen Pfad des Users aus und speichert diesen in der Datei ausgabe.txt. Aber mit den 1>> signalisiert man das diese Ausgabe an den bestehenden Inhalt der Datei angehängt werden soll.

mail -s "Hallo" empfaenger@einedomain.de < emailtext.txt

Man kann wie oben schon beschrieben, nicht nur Ausgaben in eine Datei speichern, sondern auch den Inhalt einer Datei auslesen. Mit diesem Befehl wird z.B. Eine E-Mail an den Benutzer mit der E-Mailadresse “empfaenger@einedomain.de” geschickt. Als Betreff (-s “Subject”) wird das Wort “Hallo” verwendet und der Text Inhalt wird aus der Datei emailtext.txt entnommen.

Quelle: https://www.servervoice.de/linux-6-standard-ein-und-ausgabekanaele/

Ein Fluss der Informationen

Dieser Beitrag wurde bisher 33 mal gelesen.