Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:shell_filter

Inhaltsverzeichnis

Filterbefehle

Unter einem Filter versteht man Programm, die von stdin (Standardeingabe) lesen und auf stdout (Standardausgabe) schreiben können. Die meisten dieser Programme tun genau dies, wenn sie keinen Dateinamenparameter erhalten haben. Falls jedoch ein oder mehrere Dateinamenparameter übergeben worden sind, werden lediglich die dort genannten Dateien nacheinander verarbeitet, nicht aber stdin.

Um neben Dateien auch stdin zu verarbeiten, erlauben viele Programme die Angabe von - (einzelnes Minuszeichen bzw. Bindestrich) für stdin. Eine echte Datei mit diesem Namen kann von diesen Programmen nicht verarbeitet werden.

cat

Null-Filter. Datei ausgeben. Eigentlich concatenate: Mehrere Quellen verketten und ausgeben. Es ist genau das Gegenteil von split

cat file1 file2

tac

Zeilen einer Textdatei in umgekehrter Reihenfolge ausgeben

tac file

Die ersten 10 Zeilen von Datei file ausgeben:

head file

Die ersten drei Zeilen von Datei file ausgeben:

head -3 file
head -n +3 file

Alle Zeilen bis auf die letzten drei:

head -n -3 file

tail

Die letzten 10 Zeilen von Datei file ausgeben:

tail file

Die letzten 3 Zeilen von Datei file ausgeben:

tail -3 file

Die Zeilen ab der 3. Zeile von Datei file ausgeben:

tail +3 file 

Die letzten 10 Kernelmeldungen anzeigen:

dmesg | tail

Logdatei /var/log/messages fortlaufend anzeigen: 1)

tail -F /var/log/messages

sort

Datei file alphabetisch sortieren:

sort file

Beim Sortieren identische Zeilen (Dubletten) entfernen:

sort -u file

Verzeichnisse nach Größe (nummerisch) sortiert anzeigen:

du -msx /usr/* | sort -n

Einträge der Benutzerliste nach dem dritten durch Doppelpunkt getrennten Feld uid (nummerisch) sortiert anzeigen:

sort -k3n -t: /etc/passwd

uniq

aufeinander folgende gleiche Zeilen eliminieren

uniq file

aufeinander forlgende gleiche Zeilen zählen

uniq -c file

nl

Datei numeriert ausgeben (Formatierung variiert zwischen diesen Kommandos):

nl file
cat -n file
grep -n "" file

grep

Zeilen mit dem Muster „pat“ in Datei(en) ausgeben

grep "pat" file

Negation

grep -v "pat" file

Rekursiv (-r), case insensitive (-i) und mit Ausgabe Dateinamen (-H) Inhalte suchen

grep -riH "pat" dir

tr

Zeichen ersetzen (Arbeitet nur als Filter nicht mit Dateien)

cat vornamen | tr "aeiou" "eioua"

cat vornamen | tr "a-zA-Z" "A-Za-z"
1)
-F ist die Kurzform von --follow=name. Das ist besser als -f, da -F nicht dem Inode, sondern dem Namen folgt. Log-Dateien werden gelegentlich rotiert, und die alte Datei ändert sich dann nicht mehr, weil jetzt in eine neue Log-Datei mit dem bisherigen Namen geschrieben wird.
admin_grundlagen/shell_filter.txt · Zuletzt geändert: 2020/12/04 13:06 von holger_jakobs