Dateien mit Head, Tail und Cat anzeigen

LinuxBeginner
Jetzt üben

Einführung

Willkommen in der Welt der Dateianzeige unter Linux. Im vorherigen Modul haben Sie gelernt, Dateien zu organisieren. Jetzt ist es an der Zeit, sie zu öffnen und ihren Inhalt zu lesen.

In diesem Lab lernen Sie drei grundlegende Möglichkeiten kennen, den Inhalt einer Datei anzuzeigen:

  1. cat: Liest die gesamte Datei auf einmal. Am besten für kleine Notizen geeignet.
  2. head: Liest nur den Anfang, also die „Kopfzeilen“. Am besten geeignet, um schnell zu prüfen, worum es in einer Datei geht.
  3. tail: Liest nur das Ende. Besonders nützlich, um die neuesten Einträge in einer Protokolldatei zu prüfen.

Außerdem lernen Sie einen speziellen Trick kennen, mit dem Sie die Aktualisierung einer Datei in Echtzeit verfolgen können.

Dies ist ein wichtiger Schritt beim Erlernen der Linux-Grundlagen. In früheren Modulen haben Sie gelernt, wie Dateien organisiert sind. Jetzt beginnen Sie, mit ihrem Inhalt zu arbeiten. Auf realen Systemen besteht ein großer Teil der Administration darin, die richtige Textdatei auf die richtige Weise zu lesen.

Eine vollständige Datei anzeigen (cat)

Der Befehl cat bedeutet im Grunde: „Zeige mir alles aus dieser Datei.“

Er eignet sich am besten für kleine Dateien. Wenn Sie ihn auf eine sehr große Datei anwenden, läuft der Text so schnell über den Bildschirm, dass Sie ihn nicht lesen können.

Der Name cat ist eine Abkürzung für concatenate, also „verketten“. Ursprünglich wurde der Befehl entwickelt, um Dateiinhalte zu verbinden und auszugeben. Viele Anfänger lernen cat zuerst als Anzeigebefehl kennen. Historisch gehört er jedoch zu einem umfassenderen Ansatz der Textverarbeitung.

Wir haben eine kleine Datei mit dem Namen sample.txt vorbereitet.

Wechseln Sie zunächst in Ihren Projektordner:

cd ~/project

Geben Sie nun den Inhalt der Datei auf dem Bildschirm aus:

cat sample.txt

Der vollständige Inhalt wird sofort angezeigt:

Line 1: This is a sample file.
Line 2: It is used to demonstrate the cat command.
Line 3: The cat command displays the full content.
Line 4: This file is short enough to read easily.
Line 5: End of the sample file.

Für größere Dateien benötigen wir bessere Werkzeuge.

Den Anfang anzeigen (head)

Manchmal müssen Sie nur den Titel oder die ersten Zeilen einer Datei prüfen. Dafür verwenden Sie head. Der Befehl zeigt den „Kopf“, also den Anfang einer Datei, an.

Standardmäßig zeigt head die ersten 10 Zeilen an.

Diese Voreinstellung ist nützlich, weil der Anfang einer Datei häufig wichtige Zusammenhänge enthält: einen Header, Kommentare, Spaltennamen oder die ersten Datensätze. Anders gesagt: head eignet sich zum schnellen Prüfen einer Datei.

Sehen wir uns /etc/passwd an. Dabei handelt es sich um eine lange Systemdatei mit Informationen zu Benutzern.

head /etc/passwd

Sie sollten nur die ersten 10 Zeilen sehen.

Die Anzeige anpassen

Was ist, wenn Sie nur die ersten 5 Zeilen anzeigen möchten? Mit der Option -n (Anzahl) können Sie head genau mitteilen, wie viele Zeilen ausgegeben werden sollen.

head -n 5 /etc/passwd

So können Sie eine Datei schnell prüfen, ohne ihren vollständigen Inhalt zu lesen.

Das Ende anzeigen (tail)

Wenn head den Anfang anzeigt, zeigt tail das Ende an. Der Befehl tail gibt die letzten Zeilen einer Datei aus.

Unter Linux werden Protokolle fortlaufend geschrieben. Der „neueste“ Eintrag steht immer am Ende. Wenn also gerade etwas schiefläuft, befindet sich die Fehlermeldung am Ende der Datei.

Deshalb wird tail so häufig bei Betriebs- und Administrationsaufgaben verwendet. Protokolldateien wachsen meist, indem neue Zeilen angehängt werden. Der untere Teil der Datei liefert daher am wahrscheinlichsten Hinweise auf ein aktuelles Problem.

Untersuchen wir das Systemprotokoll /var/log/syslog.

tail /var/log/syslog

Sie sehen die letzten 10 Einträge.

Wie bei head können Sie auch hier die Anzahl der Zeilen begrenzen. Um die letzten 5 Ereignisse anzuzeigen, verwenden Sie:

tail -n 5 /var/log/syslog

Dies ist ein grundlegender Befehl für Systemadministratoren. Wenn ein Server abstürzt, geben sie normalerweise als Erstes tail ein.

Live-Protokolle überwachen (tail -f)

Statische Dateien sind wenig spannend; Live-Daten sind interessanter. Der Befehl tail bietet dafür die Option -f, die für follow steht.

Wenn Sie -f verwenden, wartet tail. Sobald ein Programm eine neue Zeile in die Datei schreibt, erkennt tail diese und gibt sie sofort aus. Das ist vergleichbar mit einem Live-Nachrichtenticker.

Hier wirkt das Terminal erstmals interaktiv statt statisch. Sie lesen nicht einfach eine fertige Datei, sondern beobachten, wie ein Programm neue Ereignisse erzeugt.

Probieren wir das mit zwei Terminals aus.

Terminal 1 (Beobachter)

Beginnen Sie damit, die Protokolldatei zu überwachen:

tail -f ~/project/app.log

Der Cursor wartet. Das Terminal sieht „festgefahren“ aus, lauscht aber tatsächlich auf neue Einträge.

Terminal 2 (Auslöser)

Öffnen Sie ein zweites Terminal, indem Sie neben den Tabs auf die Schaltfläche + klicken. Schreiben Sie anschließend in das Protokoll:

echo "New log entry at $(date)" >> ~/project/app.log

Wechseln Sie schnell zurück zu Terminal 1. Die Meldung sollte dort erscheinen.

Kehren Sie zu Terminal 2 zurück und lösen Sie weitere Ereignisse aus:

echo "Another event happened" >> ~/project/app.log
echo "System is running smoothly" >> ~/project/app.log

Sobald Sie in Terminal 2 die Eingabetaste drücken, erscheint der Text in Terminal 1. So überwachen Administratoren Server in Echtzeit.

Wechseln Sie zum Abschluss zurück zu Terminal 1. Drücken Sie Ctrl+C, um die Überwachung zu beenden und zur Shell-Eingabeaufforderung zurückzukehren.

Zusammenfassung

Glückwunsch! Sie verfügen nun über die grundlegenden Werkzeuge, um Dateien unter Linux zu untersuchen.

  • cat: Liest die gesamte Datei. Geeignet für kleine Dateien.
  • head: Liest den Anfang. Geeignet für schnelle Prüfungen.
  • tail: Liest das Ende. Geeignet für Protokolldateien.
  • tail -f: Überwacht eine Datei in Echtzeit.

Mit diesen Befehlen können Sie die Frage beantworten: „Was befindet sich in dieser Datei?“