Umleitungen | Output mit > >> und | verändern
In der Bash können Befehle miteinander verknüpft und ihre Ein- und Ausgaben umgeleitet werden. Dies erleichtert die Verarbeitung von Daten und die Automatisierung von Aufgaben.
Ein-/Ausgabeumleitungen
Bash verwendet Dateideskriptoren, um die Eingabe und Ausgabe zu steuern:
Standardausgabe (stdout): Dateideskriptor 1\\ Standardfehler (stderr): Dateideskriptor 2\\ Standardeingabe (stdin): Dateideskriptor 0\\
Beispiele Umleitungen
| Befehl | Beschreibung |
| command > file.txt | Leitet die Standardausgabe in eine Datei um (überschreibt die Datei) |
| command » file.txt | Hängt die Standardausgabe an eine Datei an |
| command 2> error.log | Leitet die Fehlerausgabe in eine Datei um |
| command &> output.log | Leitet Standard- und Fehlerausgabe in eine Datei um |
| command < input.txt | Liest die Eingabe aus einer Datei |
Beispiel:
ls -l > dateiliste.txt
cat nicht_existente_datei 2> fehler.log
grep "Fehler" < fehler.log
Pipes (|)
Mit Pipes (|) kann die Ausgabe eines Befehls direkt als Eingabe für einen anderen Befehl verwendet werden.
Beispiel
Hier wird die Ausgabe von ls -l an grep weitergegeben, um nur .txt-Dateien anzuzeigen.
ls -l | grep ".txt"
cat datei.txt | wc -l
ps aux | grep firefox
Übungen
Dateilisten filtern:
Erstelle eine Liste aller Ausführbaren-Dateien in /usr/bin und speichere sie in einer Datei scripts.txt.
Zähle die Anzahl der Dateien mit einem einzigen Befehl.
Fehlermeldungen sammeln:
Führe einen Befehl aus, der eine Fehlermeldung erzeugt, und leite diese in eine Datei errors.log um.
Zeige anschließend nur die Zeilen aus errors.log an, die das Wort „Permission“ oder "Berechtigung" enthalten.
Prozesse analysieren:
Finde mit ps aux alle Prozesse, die zu einem bestimmten Benutzer gehören, und leite die Ausgabe in eine Datei.
Zähle die Anzahl der gefundenen Prozesse mit einem weiteren Befehl.