Letzte Änderung:
20.03.2012
20.03.2012
Spruch des Tages
Wenn du einen verhungernden Hund aufliest und machst ihn satt, dann wird er dich nicht beißen. Das ist der Unterschied zwischen Hund und Mensch. Mark Twain
Umleitung und Pipes
Linux verfügt über drei Standard-Kanäle:
0 stdin Standard-Eingabe 1 stdout Standard-Ausgabe 2 stderr Standard-Fehler
Ein Pipe verknüpft die Standardausgabe eines Befehls mit der Standardeingabe eines anderen Befehls. Mit anderen Worten ausgedrückt, wird die Standardausgabe zur Standardeingabe für den nach | stehenden Befehl.
Beispiele:
#cat Datei|less
#ls -lisa|more
#ps -ax|head
Beispiel:

Mit einem > wird die Standardausgabe in eine Datei umgeleitet, die neu angelegt wird, auch wenn sie bereits existiert.
Beispiel:

Mit einem >> wird die Standardausgabe in eine Datei umgeleitet, wenn sie bereits existiert, wird an das Ende der Datei angehangen. Beispiel:

Mit einem
wird die folgende Datei zur Standardeingabe.
Beispiel:
In dem nachfolgenden Beispiel wird die Datei /etc/passwd nach sort umgeleitet und das Ergebnis wird in die angegebene Datei umgeleitet:

Mit
wird erreicht, dass eine Anweisung abgearbeitet wird, bis eine "exit"-Anweisung erfolgt:
Mit 2> wird der Fehlerkanal in eine neu angelegte Datei umgeleitet und mit 2>> wird der Fehlerkanal an eine bestehende Datei angehangen.
Beispiel:

Mit 2>
1 wird der Standardfehlerkanal an die gleiche Adresse, wie der Standardausgabekanal geschickt. In dem nachfolgenden Beispiel erfolgt die Bündelung in der Schreibweise nach der Umleitung.Beispiel:

Es geht auch umgekehrt, mit 1>
2 wird erreicht, dass die Ausgabe des Standardausgabekanals an die Zieladresse des Standardeingabekanals geschickt wird.
Mit dem Befehl Befehl >/dev/null 2>
1 wird erreicht, dass jegliche Ausgabe an das /dev/null (Null-Device) geschickt wird. Der kleine Nebeneffekt ist, dass jegliche Ausgabe verloren geht, also auch entfernte Terminals nicht "mithören" können.

Das Kommando tee leitet den Input der Standard-Eingabe weiter an die Standard-Ausgabe und gleichzeitig in eine Datei.
Beispiel:

Ein Kommando gibt standardmäßig einen Fehlercode zurück. Bei erfolgreicher Ausführung ist dies der Wert 0 = true. Wenn ein Fehler verursacht wurde, wird der Wert 1 = false zurückgegeben.
Bei der befehl1

befehl2 - Verknüpfung wird befehl2 nur ausgeführt, wenn der befehl1 den Exit-Code 0 zurück gibt, also erfolgreich beendet werden konnte.
Bei der befehl1 || befehl2 - Verknüpfung wird der befehl2 nur ausgeführt, wenn der befehl1 einen Fehler verursacht hat.
Bei der befehl1 ; befehl2 - Verknüpfung wird der befehl2 ausgeführt, unabhängig davon, ob der befehl1 einen Fehler verursacht hat oder nicht.
Beispiel:
