head und tail zeigen die ersten beziehungsweise letzten Zeilen einer Datei an. Beide Werkzeuge gehören zur Grundausstattung jeder Linux- und Unix-Shell und sind besonders nützlich, um große Logdateien oder lange Ausgaben gezielt zu untersuchen, ohne sie vollständig zu öffnen.

head: Die ersten Zeilen

Standardmäßig zeigt head die ersten zehn Zeilen einer Datei:

$ head config.ini
[server]
host=localhost
port=8080
log_level=info

Die Anzahl lässt sich mit -n festlegen, Bytes mit -c:

$ head -n 5 config.ini        # die ersten 5 Zeilen
$ head -c 100 datei.bin        # die ersten 100 Bytes

tail: Die letzten Zeilen

tail zeigt standardmäßig die letzten zehn Zeilen — ideal, um in Logs den neuesten Stand zu sehen:

$ tail /var/log/syslog

Mit -n wird die Anzahl angepasst:

$ tail -n 20 /var/log/syslog

Live-Verfolgung mit tail -f

Die wichtigste Option ist tail -f (follow): Der Befehl bleibt aktiv und zeigt neue Zeilen sofort an, sobald sie in die Datei geschrieben werden. Das ist das Standardwerkzeug, um Logdateien in Echtzeit zu beobachten:

$ tail -f /var/log/nginx/access.log

Die Beobachtung endet mit Strg + C. Vergleichbar arbeitet journalctl -f für systemd-Logs — siehe systemctl und journalctl.

head und tail in Pipelines

Beide Werkzeuge sind ideale Filter in Pipelines. Typische Kombinationen:

$ tail -n 100 app.log | grep ERROR        # letzte 100 Zeilen filtern
$ ls -S | head -5                          # die 5 größten Dateien
$ history | tail -20                       # die letzten 20 Befehle

Zusammen mit grep, sort, uniq und cut sowie wc lassen sich so komplette Auswertungen in einer Zeile bauen.

Dateien aus der Mitte lesen

Durch die Kombination beider Befehle wird jede beliebige Textregion erreichbar:

$ head -n 50 datei.txt | tail -n 10       # Zeilen 41–50
$ sed -n "41,50p" datei.txt                # dasselbe mit sed

Für die reine Textfilterung ist sed oft die bessere Wahl, für Dateisuche und Stapelverarbeitung find und xargs.

Verwandte Grundlagen: Bash-Befehle und curl und wget — Letztere kombinieren Downloads oft mit head oder tail, um große Antworten zu begrenzen.