2 standardkanäle
kraeml edited this page 2023-10-01 18:46:34 +00:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Lerneinheit: Standardkanäle und Filterkommandos in der Shell

Die Standardkanäle in der Linux-Shell sind die Hauptwege, über die Daten zwischen einem Prozess (einem laufenden Programm oder Befehl) und dem Betriebssystem sowie anderen Prozessen fließen. Es gibt drei Standardkanäle:

  1. Standardeingabe (stdin): Dies ist der Kanal, über den ein Prozess Daten empfängt. Normalerweise ist die Standardeingabe die Tastatur. Sie können jedoch die Eingabe von einer Datei oder einem anderen Prozess umleiten, um Daten an einen Befehl zu übergeben.

  2. Standardausgabe (stdout): Dies ist der Kanal, über den ein Prozess seine Ausgabe sendet. Normalerweise wird die Standardausgabe auf den Bildschirm (Terminal) geleitet, sodass Sie die Ausgabe eines Befehls sehen können. Sie können jedoch die Ausgabe in eine Datei umleiten, um sie zu speichern oder an einen anderen Prozess weiterzugeben.

  3. Standardfehlerausgabe (stderr): Dies ist der Kanal, über den ein Prozess Fehlermeldungen sendet. Wie die Standardausgabe wird die Standardfehlerausgabe normalerweise auf den Bildschirm geleitet. Sie können jedoch auch die Standardfehlerausgabe in eine Datei umleiten oder sie mit der Standardausgabe kombinieren, um Fehler und normale Ausgabe in einer Datei zu speichern.

Kanal Bezeichnung Kürzel Gerät Zweck
0 Standard-Eingabe stdin Tastatur Programme erhalten Eingaben
1 Standard-Ausgabe stdout Bildschirm Programme senden Ausgaben
2 Standard-Fehlerausgabe stderr Bildschirm Programme senden Fehlermeldungen

Die Verwendung von Standardkanälen und deren Umleitung ermöglicht es, die Interaktion zwischen Befehlen, Prozessen und Dateien flexibel zu gestalten, was in der Linux-Shell sehr nützlich ist, um Aufgaben effizient auszuführen und Daten zu verarbeiten.

Viele Linux-Kommandos beispielsweise grep & Co. sind so gebaut, dass sie Eingabedaten lesen, diese irgendwie manipulieren und das Ergebnis dieser Manipulationen wieder ausgeben.

asciicast

Mit Strg + d kommt man aus dem Filter raus.

Lernziel 1: Die Ein- und Ausgabeumlenkung der Shell beherrschen

Übung 1: Einführung in die Ein- und Ausgabeumlenkung

Ausgabeumlenkung

  • Öffnen Sie das Terminal und verwenden Sie den Befehl echo, um einen Text auf dem Bildschirm auszugeben.
  • Lernen Sie, wie Sie die Standardausgabe (stdout) in eine Datei umleiten können. Verwenden Sie > und >> für das Überschreiben bzw. das Anhängen an eine Datei.
  • Üben Sie die Umleitung der Standardfehlerausgabe (stderr) mit 2> und 2>>.
  • Experimentieren Sie mit der Eingabeumlenkung (<), um Daten aus einer Datei an einen Befehl weiterzugeben.

Übung 2: Pipes für die Datenübertragung

  • Verwenden Sie den Befehl cat, um den Inhalt einer Textdatei auf dem Bildschirm anzuzeigen.
  • Erstellen Sie eine Textdatei mit Beispieldaten.
  • Nutzen Sie Pipes (|), um den Inhalt der Textdatei an ein Filterkommando zu übergeben und das Ergebnis auf dem Bildschirm anzuzeigen.

Lernziel 2: Die wichtigsten Filterkommandos kennen

Übung 3: Sortieren und Filtern von Daten

  • Erstellen Sie eine Textdatei mit einer Liste von Wörtern.
  • Verwenden Sie den Befehl sort, um die Wörter alphabetisch zu sortieren, und leiten Sie die Ausgabe in eine neue Datei um.
  • Verwenden Sie den Befehl grep, um nach bestimmten Wörtern in einer Textdatei zu suchen.
  • Kombinieren Sie sort und grep, um Wörter in einer Datei zu finden und sie dann alphabetisch zu sortieren.

Übung 4: Verketten von Filterkommandos

  • Erstellen Sie eine Textdatei mit einer Liste von Zahlen.
  • Nutzen Sie sort und uniq, um die eindeutigen Zahlen in aufsteigender Reihenfolge anzuzeigen.
  • Kombinieren Sie grep und wc, um die Anzahl der Zeilen in einer Textdatei zu zählen, die bestimmten Kriterien entsprechen.