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/
Dieser Beitrag wurde bisher 33 mal gelesen.