Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung | Letzte Überarbeitung Beide Seiten, nächste Überarbeitung | ||
admin_grundlagen:pipes_und_umleitungen [2021/11/02 22:27] 127.0.0.1 Externe Bearbeitung |
admin_grundlagen:pipes_und_umleitungen [2022/11/21 14:17] ingo_wichmann |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Kanäle ====== | ||
+ | Datei ''ausgabe.txt'' mit Standard-Ausgabe des Befehls ''ls -la'' überschreiben: | ||
+ | ls -la > ausgabe.txt | ||
+ | cat ausgabe.txt | ||
+ | -> Länge der Datei ''ausgabe.txt'' beachten! | ||
+ | |||
+ | Standard-Ausgabe des Befehls ''date'' an Datei ''ausgabe.txt'' anhängen: | ||
+ | date >> ausgabe.txt | ||
+ | cat ausgabe.txt | ||
+ | |||
+ | Standard-Eingabe: | ||
+ | wc -l ausgabe.txt | ||
+ | wc -l < ausgabe.txt | ||
+ | wc -l /etc/shadow | ||
+ | wc -l < /etc/shadow | ||
+ | |||
+ | Datei ''fehler.txt'' mit Fehlerausgabe des Befehls ''ls gibtsnicht'' überschreiben: | ||
+ | ls gibtsnicht 2> fehler.txt | ||
+ | |||
+ | Fehlerausgabe des Befehls ''ls gibtsnicht'' an Datei ''fehler.txt'' anhängen: | ||
+ | ls gibtsnicht 2>> fehler.txt | ||
+ | |||
+ | ls . gibtsnicht 2> fehler.txt | ||
+ | ls . gibtsnicht > ausgabe.txt | ||
+ | ls . gibtsnicht >& beides.txt | ||
+ | ls . gibtsnicht > beides.txt 2>&1 | ||
+ | | ||
+ | |||
+ | Übungen 8.2 - 8.4 im Skript | ||
+ | |||
+ | ====== Pipes ====== | ||
+ | Beispiele: | ||
+ | |||
+ | dpkg -l | wc -l | ||
+ | dpkg -l | tee pakete.txt | less | ||
+ | |||
+ | Doku: | ||
+ | * [[wpde>Pipe (Informatik)]] | ||
+ | * [[https://www.moritz.systems/blog/mastering-unix-pipes-part-1/|detaillierte, technische Beschreibung, wie Pipes implementiert sind]] | ||
+ | ====== Filterbefehle ====== | ||
+ | ===== cat, tac & split ===== | ||
+ | |||
+ | Tabelle 8.2 im Skript | ||
+ | |||
+ | tar cz --directory /usr/share doc/ | split -b 10M - doc.tar. | ||
+ | cat doc.tar.a* | tar tz | tail | ||
+ | |||
+ | Benutzerliste rückwärts und mit Zeilennummern ;-) | ||
+ | tac /etc/passwd | ||
+ | cat -n /etc/passwd | ||
+ | ===== head & tail ===== | ||
+ | head -n 20 /etc/services | ||
+ | tail -n 20 /etc/services | ||
+ | Kapitel 8.3.2 im Skript lesen | ||
+ | |||
+ | Übungen 8.8 - 8.11 im Skript | ||
+ | |||
+ | ===== od ===== | ||
+ | echo 'Müller' | od -a | ||
+ | |||
+ | ===== cut ===== | ||
+ | cut -d: -f 7 /etc/passwd | ||
+ | |||
+ | ===== sort ===== | ||
+ | Tabelle 8.10 im Skript | ||
+ | |||
+ | Übungen 8.22, 8.23, 8.26 im Skript | ||
+ | |||
+ | ===== uniq ===== | ||
+ | |||
+ | find /usr/share/doc -printf '%y\n' | sort | uniq -c | ||
+ | | ||
+ | ===== grep ===== | ||
+ | cat /etc/passwd | grep bash | ||
+ | (( | ||
+ | Moderne Alternativen: | ||
+ | * [[https://packages.debian.org/source/sid/rust-ripgrep|ripgrep]] | ||
+ | * [[https://packages.debian.org/source/bullseye/ugrep|ugrep]] | ||
+ | )) | ||
+ | |||
+ | {{:linux_grundlagen:pasted:20220310-151508.png}} | ||
+ | ===== column ===== | ||
+ | column -t /etc/fstab | ||
+ | ip -o link | column -t | ||
+ | ip -o address | column -t | ||
+ | column -s: -t /etc/passwd | ||
+ | |||
+ | ===== Pipeline ===== | ||
+ | Statistik aller eingegebenen Befehle | ||
+ | history | tr -s "[[:space:]]" | cut -d" " -f 3- | sort | uniq -c| sort -nr | ||
+ | |||
+ | ====== Übung ====== | ||
+ | |||
+ | Wer errät, wofür dieser Befehl gut ist? (( https://massimo-nazaria.github.io/blog/2019/03/02/unix-philosophy-with-an-example.html )) | ||
+ | seq 1 6 | shuf | head -n 1 | ||
+ | |||
+ | |||
+ | |||
===== Vorbereitung des Beispiels ===== | ===== Vorbereitung des Beispiels ===== | ||
Testdaten ins Heimatverzeichnis kopieren: | Testdaten ins Heimatverzeichnis kopieren: |