In unserem vorherigen Tutorial haben wir uns den Head-Befehl von Linux und seine Verwendungsbeispiele angesehen. Der Tail-Befehl ist die Ergänzung des Head-Befehls. Es liest und druckt die letzten N Zeilen in einer Datei. Ohne Befehlsoptionen werden die letzten 10 Zeilen einer Textdatei ausgegeben. In dieser Anleitung konzentrieren wir uns auf den tail-Befehl und untersuchen die verschiedenen Optionen, die mit dem Befehl einhergehen.
Der tail-Befehl hat die folgende Syntax:
$ tail [options] file(s)
1 ) Zeigen Sie die letzten 10 Zeilen einer Datei an
Wie bereits erwähnt, zeigt der Befehl tail ohne Argumente die letzten 10 Zeilen einer Datei an. Wir haben eine Beispieldatei namens asian_countries.txt – Sie enthält eine Liste von Ländern auf dem asiatischen Kontinent.
Führen Sie den folgenden Befehl aus, um die letzten 10 Länder in der Datei aufzulisten:
$ tail asian_countries.txt
2) Zeigt die letzten N Zeilen in einer Datei an
Angenommen, Sie möchten eine bestimmte Anzahl von Zeilen und nicht die standardmäßigen 10 Zeilen anzeigen. Verwenden Sie dazu das Flag -n gefolgt von der Anzahl der Zeilen.
Zum Beispiel, um die letzten 5 Zeilen anzuzeigen. Rufen Sie dazu den Befehl auf:
$ tail -n 5 asian_countries.txt
3) Kopfzeile des Dateinamens drucken
Um ein Header-Tag hinzuzufügen, das dem Dateinamen entspricht, verwenden Sie die Option -v wie folgt:
$ tail -v asian_countries
Im Beispiel unten wird zuerst das Tag asian_countries gedruckt, gefolgt von den letzten zehn Zeilen der Datei,
4) Anzeige der letzten n Zeilen aus mehreren Dateien
Darüber hinaus können Sie die letzten N Zeilen aus mehreren Dateien mit der folgenden Syntax auflisten:
$ tail -n 5 file_1 file_2
Wir haben eine weitere Datei namens europe_countries.txt , die eine Liste europäischer Länder enthält. Führen Sie den folgenden Befehl aus, um die letzten 5 Zeilen in den Textdateien asian_countries.txt und europe_countries.txt zu drucken:
$ tail -n 5 asian_countries.txt europe_countries.txt
Beachten Sie dieses Mal die Abgrenzung des Inhalts der beiden Dateien mithilfe des Dateinamen-Headers, den wir im vorherigen Schritt erwähnt haben. Beim Anzeigen von Inhalten aus mehreren Dateien werden die Tag-Namen zur besseren Darstellung automatisch hinzugefügt.
Wenn Sie Dateinamen-Header in der Ausgabe des tail-Befehls unterdrücken möchten, verwenden Sie die Option „-q“, das Beispiel ist unten gezeigt:
$ tail -q -n 5 asian_countries.txt europe_countries.txt
5) Speichern Sie die Ausgabe des tail-Befehls in einer Textdatei
Wenn Sie nicht viel Zeit haben, sich die Ausgabe anzusehen, und sie stattdessen lieber später ansehen möchten, können Sie sie mit dem Umleitungsoperator „Größer als“ (> ) in einer Textdatei speichern.
Um beispielsweise die Ausgabe der letzten 5 Zeilen in der Datei asian_countries.txt in der Textdatei output.txt zu speichern, rufen Sie den Befehl auf.
$ tail -n 5 asian_countries.txt > output.txt
HINWEIS:Das Größer-als-Zeichen (> ) überschreibt die Datei, wenn es ein weiteres Mal mit derselben Datei verwendet wird. Der ursprüngliche Inhalt wird überschrieben und neuer Inhalt geschrieben.
Verwenden Sie zum Anhängen oder Hinzufügen von Ausgaben das doppelte Größer-als-Zeichen (>> ). Dies fügt die Ausgabe der Datei hinzu, anstatt sie zu überschreiben.
Um beispielsweise die letzten fünf Zeilen der Datei „europe_countries.txt“ an die Datei „output.txt“ anzuhängen, führen Sie den folgenden Befehl aus:
$ tail -n 5 europe_countries.txt >> output.txt
Mit dem cat-Befehl können Sie sehen, dass die Ausgabedatei nun Daten aus beiden Dateien enthält.
6 ) Verwenden Sie die Option -f, um Echtzeit-Protokolldateien zu überwachen
Bei Verwendung mit der Option -f wird der Befehl tail hauptsächlich von Systemadministratoren verwendet, um Protokolldateien in Echtzeit zu überwachen. Um beispielsweise die Syslog-Protokolldatei in Echtzeit zu überwachen, führen Sie den folgenden Befehl aus. Sie werden alle paar Sekunden eine Protokollausgabe am unteren Rand des Terminals bemerken.
$ sudo tail -f /var/log/syslog
Verwenden Sie die Option „-F“ im tail-Befehl, wenn Sie die Protokolldatei auch während ihrer Rotation überwachen möchten. Wenn die Datei gedreht wird, beginnt der tail-Befehl automatisch mit dem Drucken von Zeilen aus der neuen Datei, wenn wir die Option „-F“ verwenden.
$ sudo tailf -F /var/log/syslog
7) Verwendung des tail-Befehls mit Pipes
Unter Linux bieten Pipes eine coole Möglichkeit, Text zu verarbeiten. Mit dem Befehl tail können Sie die Ausgabe weiterleiten und die Anzeige weiter ändern. Sie können die Ausgabe beispielsweise wie folgt alphabetisch sortieren:
$ tail asian_countries.txt | sort
Sie können auch mehrere Pipe-Anweisungen verwenden, zum Beispiel:
$ cat asian_countries.txt | tail -n 5 | sort
Also, was macht der obige Befehl? Zuerst druckt der Befehl cat den Inhalt der Textdatei asian_countries.txt aus. Die Informationen werden an den tail-Befehl geleitet, der die letzten fünf Zeilen ausgibt. Schließlich werden die Informationen mit dem sort-Befehl in alphabetischer Reihenfolge sortiert.
8) N Bytes Daten aus einer Datei drucken
Mit der Option '-c' im tail-Befehl können wir n Byte-Daten aus einer Datei drucken.
$ tail -c 400 /var/log/kern.log
Obiger tail-Befehl zeigt 400 Byte Daten vom Ende der Datei an.
Wir können die Daten auch in KB und MB mit den Parametern „K“ und „M“ drucken, das Beispiel ist unten gezeigt
$ tail -c 4k /var/log/kern.log $ tail -c 4M /var/log/kern.log
9 ) Holen Sie sich Hilfe zu den Tail-Befehlsoptionen
Um Hilfe zu weiteren tail-Befehlsoptionen zu erhalten, führen Sie den folgenden Befehl aus:
$ tail --help
Alternativ können Sie die Manpages wie gezeigt besuchen:
$ man tail
10) Überprüfen Sie die Version des Tail-Befehls
Um schließlich die Version des tail-Befehls zu überprüfen, führen Sie Folgendes aus:
$ tail --version
Das ist alles aus diesem Leitfaden. Ich hoffe, Sie finden es informativ. Bitte teilen Sie uns Ihr Feedback und Ihre Kommentare mit.