Kommandozeile verstehen: Pipes, Umleitungen und Rückgabewerte
- Rubrik
- Lernen & Einstieg
- Veröffentlicht am
- 02. Juli 2026
- Lesezeit
- 6 Min. Lesezeit
Wer die drei Grundmechanismen der Shell verstanden hat, kann kleine Programme zu großen Werkzeugen verbinden. Das ist die eigentliche Idee hinter der Kommandozeile.
Pipes verketten Programme
Das Zeichen | verbindet die Ausgabe eines Programms mit der Eingabe des nächsten. ls -l | grep .log | wc -l listet Dateien, filtert die Protokolldateien heraus und zählt sie. Jedes Glied macht genau eine Sache. Diese Zerlegung ist der Grund, warum sich mit wenigen Standardwerkzeugen erstaunlich viel erledigen lässt, ohne eine Zeile eigenen Code zu schreiben.
Umleitungen schreiben in Dateien
befehl > datei.txt schreibt die Ausgabe in eine Datei und überschreibt dabei den bisherigen Inhalt, >> hängt stattdessen an. Wichtig ist die Trennung der Kanäle: Die reguläre Ausgabe läuft über Kanal 1, Fehlermeldungen über Kanal 2. befehl > ausgabe.txt 2> fehler.txt trennt beide sauber, 2>&1 führt sie zusammen. Wer das übersieht, wundert sich über leere Protokolldateien ausgerechnet bei fehlgeschlagenen Läufen.
Wer nur Kanal 1 protokolliert, protokolliert genau die Fälle nicht, für die er das Protokoll angelegt hat.
Rückgabewerte steuern den Ablauf
Jedes Programm hinterlässt beim Beenden eine Zahl: 0 bedeutet Erfolg, alles andere einen Fehler. echo $? zeigt den Wert des letzten Aufrufs. Darauf bauen die Verknüpfungen auf: befehl1 && befehl2 führt das zweite nur bei Erfolg aus, zwei senkrechte Striche dagegen nur bei Misserfolg.
Vier Muster, die im Alltag immer wieder auftauchen:
programm --help | lessfür eine blätterbare Hilfe;sort datei | uniq -c | sort -rnfür eine Häufigkeitsliste;befehl > /dev/null 2>&1, wenn die Ausgabe wirklich niemanden interessiert;set -o pipefail, damit ein Fehler mitten in einer Pipe nicht untergeht.
Üben Sie diese Muster an harmlosen Daten, etwa an einer Kopie Ihrer Protokolldateien. Die Mechanik ist in einer Stunde verstanden, die Sicherheit im Umgang wächst über einige Wochen.