Diese Kommandos ermöglichen das Anzeigen von Dateiinhalten auf der Kommandozeile. Jedes Tool hat seine spezifischen Einsatzgebiete - von der schnellen Ausgabe kleiner Dateien bis zur interaktiven Navigation in großen Log-Dateien.
| Kommando | Verwendung | Best für |
|---|---|---|
| cat | Gesamten Dateiinhalt ausgeben | Kleine Dateien, Zusammenfügen, Pipes |
| less | Interaktiv durch Datei navigieren | Große Dateien, Logs durchsuchen |
| more | Seitenweise durch Datei blättern | Einfaches Paging (veraltet) |
| head | Erste Zeilen einer Datei | Datei-Anfang prüfen |
| tail | Letzte Zeilen einer Datei | Log-Dateien, Live-Überwachung |
cat gibt den gesamten Inhalt einer oder mehrerer Dateien aus.
cat [OPTIONEN] [DATEI...]
# Datei anzeigen cat datei.txt # Mehrere Dateien anzeigen cat datei1.txt datei2.txt # Mit Zeilennummern cat -n datei.txt # Nur nicht-leere Zeilen nummerieren cat -b datei.txt # Zeichen sichtbar machen cat -A datei.txt # Zeigt Tabs (^I) und Zeilenenden ($) cat -v datei.txt # Zeigt nicht-druckbare Zeichen
# Dateien zusammenfügen cat teil1.txt teil2.txt teil3.txt > komplett.txt # An Datei anhängen cat zusatz.txt >> hauptdatei.txt # Datei erstellen (hier-doc) cat > neue-datei.txt << EOF Zeile 1 Zeile 2 Zeile 3 EOF # Stdin in Datei schreiben cat > notiz.txt # Tippen, mit Ctrl+D beenden # Leere Datei erstellen cat /dev/null > leere-datei.txt # Datei kopieren cat quelle.txt > ziel.txt
# Mit grep kombinieren cat access.log | grep "404" # Zeilen zählen cat datei.txt | wc -l # Sortieren cat namen.txt | sort # Duplikate entfernen cat liste.txt | sort | uniq
| Option | Bedeutung | |
|---|---|---|
| -n | Alle Zeilen nummerieren | |
| -b | Nur nicht-leere Zeilen nummerieren | |
| -s | Mehrere Leerzeilen zu einer zusammenfassen | |
| -A | Alle nicht-druckbaren Zeichen anzeigen | |
| -E | Zeilenenden mit $ markieren | |
| -T | Tabs als | I anzeigen |
| -v | Nicht-druckbare Zeichen sichtbar machen |
less ist ein interaktiver Datei-Betrachter mit erweiterten Navigationsmöglichkeiten.
less [OPTIONEN] [DATEI]
| Taste | Funktion |
|---|---|
| Space, f | Eine Seite vorwärts |
| b | Eine Seite rückwärts |
| Enter, j | Eine Zeile vorwärts |
| k | Eine Zeile rückwärts |
| g | Zum Anfang der Datei |
| G | Zum Ende der Datei |
| /muster | Vorwärts suchen |
| ?muster | Rückwärts suchen |
| n | Nächster Treffer |
| N | Vorheriger Treffer |
| h | Hilfe anzeigen |
| q | Beenden |
# Datei anzeigen less datei.txt # Mit Zeilennummern less -N datei.txt # Lange Zeilen umbrechen less -S datei.txt # Kein Umbrechen (scrollen mit Pfeiltasten) # Farbige Ausgabe beibehalten less -R farbige-ausgabe.txt # Mehrere Dateien less datei1.txt datei2.txt # Mit :n zur nächsten, :p zur vorherigen Datei # Follow-Mode (wie tail -f) less +F logfile.log # Ctrl+C zum Stoppen, F zum Fortsetzen
# Log-Datei durchsuchen less /var/log/syslog # Dann: /error (suchen), n (nächster), N (vorheriger) # Nur bestimmte Zeilen anzeigen grep "ERROR" logfile.log | less # Mit Syntax-Highlighting less -R <(cat script.sh | pygmentize -l bash) # Binärdatei sicher anzeigen less bild.jpg # Zeigt Hex-Werte statt Binär-Chaos # Komprimierte Dateien less datei.gz # less dekomprimiert automatisch
| Option | Bedeutung |
|---|---|
| -N | Zeilennummern anzeigen |
| -S | Lange Zeilen nicht umbrechen |
| -R | ANSI-Farben interpretieren |
| -X | Bildschirm nicht löschen beim Beenden |
| -F | Beenden wenn Inhalt auf eine Seite passt |
| +F | Follow-Mode (wie tail -f) |
| -i | Groß-/Kleinschreibung bei Suche ignorieren |
| +G | Zum Ende der Datei springen |
more ist der ältere, einfachere Vorgänger von less.
more [OPTIONEN] [DATEI]
| Taste | Funktion |
|---|---|
| Space | Nächste Seite |
| Enter | Nächste Zeile |
| b | Vorherige Seite (falls unterstützt) |
| /muster | Suchen |
| q | Beenden |
# Datei anzeigen more datei.txt # Mit Zeilennummern pro Seite more -n 20 datei.txt # Mehrere Dateien more datei1.txt datei2.txt
Empfehlung: Nutzen Sie less statt more - es bietet mehr Funktionen und ist rückwärts-kompatibel.
head zeigt den Anfang einer Datei (Standard: 10 Zeilen).
head [OPTIONEN] [DATEI...]
# Erste 10 Zeilen (Standard) head datei.txt # Erste 20 Zeilen head -n 20 datei.txt head -20 datei.txt # Kurzform # Erste 100 Bytes head -c 100 datei.txt # Mehrere Dateien head datei1.txt datei2.txt # Ohne Dateinamen-Header head -q datei1.txt datei2.txt # Alles außer die letzten 5 Zeilen head -n -5 datei.txt
# CSV-Header anzeigen head -n 1 daten.csv # Erste Zeile jeder Datei im Verzeichnis head -n 1 *.txt # Log-Anfang prüfen head /var/log/syslog # Große Datei samplen head -n 1000 grosse-datei.txt > sample.txt # Mit tail kombinieren (Zeilen 10-20) head -n 20 datei.txt | tail -n 10 # Erste Zeile jeder Datei mit Namen for file in *.log; do echo "=== $file ===" head -n 1 "$file" done
tail zeigt das Ende einer Datei (Standard: 10 Zeilen) und kann Dateien live überwachen.
tail [OPTIONEN] [DATEI...]
# Letzte 10 Zeilen (Standard) tail datei.txt # Letzte 20 Zeilen tail -n 20 datei.txt tail -20 datei.txt # Kurzform # Live-Überwachung (Follow-Mode) tail -f logfile.log # Ab Zeile 10 bis Ende tail -n +10 datei.txt # Letzte 100 Bytes tail -c 100 datei.txt # Mehrere Dateien live überwachen tail -f /var/log/syslog /var/log/auth.log
# Log-Dateien live verfolgen tail -f /var/log/syslog # Mit Zeilennummern tail -n 50 datei.txt | cat -n # Letzte 10 Minuten eines Logs (approximativ) tail -n 1000 access.log # Follow mit Retry (auch wenn Datei nicht existiert) tail -F logfile.log # -F statt -f # Nur neue Zeilen ab jetzt tail -f -n 0 logfile.log # Mit grep filtern tail -f application.log | grep ERROR # Mehrere Logs mit Farben tail -f *.log | grep --color=auto "ERROR\|WARNING\|$" # Follow und Beenden nach 10 Sekunden timeout 10 tail -f logfile.log
# Apache Access-Log tail -f /var/log/apache2/access.log # Mehrere Logs gleichzeitig tail -f /var/log/syslog /var/log/auth.log # Mit grep filtern tail -f /var/log/syslog | grep "error" # Mit awk formatieren tail -f access.log | awk '{print $1, $7}' # Farbiges Output tail -f syslog | grep --color=auto "ERROR\|$" # Follow und in Datei schreiben tail -f source.log | tee -a copy.log # Beenden mit Ctrl+C
# Kleine Datei komplett anzeigen cat kleine-datei.txt # Große Datei interaktiv durchsuchen less grosse-datei.txt # Datei-Anfang prüfen head config.ini # Log-Ende ansehen tail -n 50 /var/log/syslog # Log live überwachen tail -f /var/log/application.log # Bestimmte Zeilen (20-30) head -n 30 datei.txt | tail -n 10
# Zeilen 100-200 anzeigen head -n 200 datei.txt | tail -n 100 # Mittelteil einer Datei cat datei.txt | head -n 1000 | tail -n 500 # CSV-Daten samplen (Header + 10 Zeilen) (head -n 1 daten.csv; tail -n 10 daten.csv) # Log-Rotation überwachen tail -f /var/log/app.log /var/log/app.log.1 # Logs mit Zeitstempel tail -f syslog | while read line; do echo "$(date '+%H:%M:%S') $line" done
# Große Dateien: less statt cat less huge-file.log # Lädt nicht alles in Speicher # Nur bestimmte Zeilen: head/tail statt cat | grep head -n 1000 large.log | grep "error" # Schneller # Zählen ohne cat wc -l datei.txt # Statt: cat datei.txt | wc -l
# In ~/.bashrc alias tailf='tail -f' alias logs='tail -f /var/log/syslog' alias errlog='tail -f /var/log/syslog | grep -i error'