Bash Eingabe/Ausgabe
Zur Navigation springen
Zur Suche springen
Eingabe/Ausgabe
- Standardeingabe (0): Laufende Programme erwarten von hier ihre Eingaben (normalerweise handelt es sich um die Tastatur).
- Standardausgabe (1): Programme schreiben hier ihre Ausgaben hin (normalerweise der Bildschirm).
- Standardfehlerausgabe (2): Fehlerausgaben landen hier (Bildschirm, aber nur auf der aktiven Konsole).
Umleitungen
- cat
Das Programm cat liest von STDIN und gibt auf STDOUT aus, solange bis das EOF-Zeichen kommt.
- cat
bla bla bla bla
Einlesen der Datei dat
- cat < dat
wichtig
Schreiben in die Datei dat – überschreibt den bisherigen Inhalt der Datei:
- cat > dat
sogar noch wichtiger
Ausgeben der Datei dat
- cat dat
sogar noch wichtiger
Lesen aus der Datei dat und Schreiben in die Datei neuedat
- cat < dat > neuedat
- cat < neuedat
sogar noch wichtiger
Anhängen der Ausgabe von date an die Datei neuedat
- date >> neuedat
- cat neuedat
sogar noch wichtiger Do 18. Jun 14:08:58 CEST 2009
Umleiten des Standardfehlerkanals nach error
- rm sux 2> error
- more error
Entfernen von „sux“ nicht möglich: No such file or directory
Zusammenlegen von Standardausgabe und Standardfehlerkanal
- touch tux
- rm -v sux tux > aus-err 2>&1
- cat < aus-err
rm: Entfernen von „sux“ nicht möglich: No such file or directory „tux“ entfernt
Nacheinander auszuführende Kommandos
- pwd; date
/root Do 18. Jun 14:13:05 CEST 2009
Verknüpfung von cat und wc
- cat < aus-err | wc -l
2
Übergeben der Ausgabe von tail als Eingabe für grep mit Hilfe der Pipe „|“
- tail /var/log/auth.log | grep xinux
Jun 18 13:52:33 zero nss_wins[11433]: pam_unix(login:session): session closed for user xinux
Übergeben der letzten 100 Zeilen von syslog als Eingabe für grep
- tail /var/log/syslog -n 100 | grep error
Jun 18 09:30:54 zero kernel: [154384.692135] end_request: I/O error, dev fd0, sector 0 Jun 18 09:30:54 zero kernel: [154384.712137] end_request: I/O error, dev fd0, sector 0
Aufgaben
Aufgabe 1 – Umleiten der Ausgabe
- Erstellen Sie eine Datei info.txt mit beliebigem Inhalt.
- Leiten Sie die Ausgabe des Befehls cat in eine neue Datei kopie.txt um.
- Überprüfen Sie anschließend den Inhalt von kopie.txt mit cat.
- Welche Auswirkung hat der Operator >?
Aufgabe 2 – Anhängen von Ausgaben
- Erstellen Sie eine Datei log.txt und schreiben Sie mit echo mehrere Zeilen hinein.
- Fügen Sie anschließend mit date >> log.txt den aktuellen Zeitstempel an.
- Prüfen Sie den Unterschied zwischen > und >>.
- Wann ist welche Variante sinnvoll?
Aufgabe 3 – Fehlerausgabe umleiten
- Führen Sie den Befehl rm datei_does_not_exist aus und beobachten Sie die Ausgabe.
- Wiederholen Sie den Befehl mit Umleitung der Fehlerausgabe: rm datei_does_not_exist 2> fehler.txt.
- Untersuchen Sie den Inhalt der Datei fehler.txt.
- Wohin wurde die Fehlermeldung beim ersten bzw. beim zweiten Aufruf ausgegeben?
Aufgabe 4 – Pipes verwenden
- Kombinieren Sie die Befehle cat und wc, um die Anzahl der Zeilen einer Datei /etc/passwd zu zählen.
- Verwenden Sie dazu eine Pipe:
** cat /etc/passwd | wc -l
- Testen Sie anschließend eine Variante ohne cat:
** wc -l < /etc/passwd
- Welche Variante ist effizienter und warum?
Zusatzaufgabe – Standardausgabe und Fehler gemeinsam umleiten
- Erstellen Sie ein Skript, das mehrere Befehle enthält, von denen einige Fehler erzeugen (z. B. ls /root und ls /tmp).
- Leiten Sie sowohl Standardausgabe als auch Standardfehler in eine gemeinsame Datei um:
** bash skript > ausgabe.txt 2>&1
- Analysieren Sie den Inhalt von ausgabe.txt.
- Welche Ausgaben stammen von der Standardausgabe und welche vom Fehlerkanal?

