Connect with us

Wie man

So verwenden Sie den tail-Befehl unter Linux

So verwenden Sie Curl zum Herunterladen von Dateien über die Linux-Befehlszeile

Fatmawati Achmad Zaenuri/Shutterstock

Das Linux tail Befehl zeigt Daten vom Ende einer Datei an. Es kann sogar Aktualisierungen anzeigen, die einer Datei in Echtzeit hinzugefügt wurden. Wir zeigen Ihnen, wie Sie es verwenden.

Hat systemd den Schwanz getötet?

Das tail Befehl zeigt Ihnen Daten vom Ende einer Datei. Normalerweise werden neue Daten am Ende einer Datei hinzugefügt, sodass die tail Befehl ist eine schnelle und einfache Möglichkeit, die neuesten Ergänzungen zu einer Datei anzuzeigen. Es kann auch eine Datei überwachen und jeden neuen Texteintrag in dieser Datei anzeigen, wenn er auftritt. Dies macht es zu einem großartigen Tool zum Überwachen von Protokolldateien.

Viele moderne Linux-Distributionen haben die systemd System- und Servicemanager. Dies ist der erste ausgeführte Prozess, er hat Prozess-ID 1, und es ist das übergeordnete Element aller anderen Prozesse. Diese Rolle war früher von den Älteren bearbeitet init System.

Zusammen mit dieser Änderung kam ein neues Format für Systemprotokolldateien. Nicht mehr im Klartext erstellt, unter systemd sie werden in einem binären Format aufgezeichnet. Zu diese Protokolldateien lesen, müssen Sie verwenden das journactl Nützlichkeit. Das tail Befehl funktioniert mit Nur-Text-Formaten. Es liest keine Binärdateien. Bedeutet das also die tail Befehl ist eine Lösung auf der Suche nach einem Problem? Hat es noch etwas zu bieten?

Es gibt noch mehr tail Befehl als das Anzeigen von Updates in Echtzeit. Außerdem gibt es immer noch viele Protokolldateien, die nicht vom System generiert werden und immer noch als reine Textdateien erstellt werden. Beispielsweise haben Protokolldateien, die von generiert wurden, ihr Format nicht geändert.

Schwanz benutzen

Übergeben Sie den Namen einer Datei an tail und es zeigt Ihnen die letzten zehn Zeilen aus dieser Datei. Die von uns verwendeten Beispieldateien enthalten Listen mit sortierten Wörtern. Jede Zeile ist nummeriert, daher sollte es leicht sein, den Beispielen zu folgen und zu sehen, welche Auswirkungen die verschiedenen Optionen haben.

tail word-list.txt

Um eine andere Zeilenanzahl anzuzeigen, verwenden Sie die -n (Anzahl der Zeilen) Option:

tail -n 15 word-list.txt

Eigentlich können Sie auf das „-n“ verzichten und einfach einen Bindestrich „-“ und die Zahl verwenden. Stellen Sie sicher, dass keine Leerzeichen dazwischen sind. Technisch, Dies ist eine veraltete Befehlsform, aber es ist noch in der Handbuchseite, und es funktioniert immer noch.

tail -12 word-list.txt

Tail mit mehreren Dateien verwenden

Du kannst haben tail mit mehreren Dateien gleichzeitig arbeiten. Übergeben Sie einfach die Dateinamen in der Befehlszeile:

tail -n 4 list-1.txt list-2.txt list-3.txt

Für jede Datei wird eine kleine Kopfzeile angezeigt, damit Sie wissen, zu welcher Datei die Zeilen gehören.

Anzeigen von Zeilen am Anfang einer Datei

Das + (von Anfang an zählen) Modifikator macht tail Zeilen ab dem Anfang einer Datei anzeigen, beginnend mit einer bestimmten Zeilennummer. Wenn Ihre Datei sehr lang ist und Sie eine Zeile in der Nähe des Dateianfangs auswählen, werden viele Ausgaben an das Terminalfenster gesendet. Wenn dies der Fall ist, ist es sinnvoll, die Ausgabe von weiterzuleiten tail in less.

tail +440 list-1.txt

Sie können kontrolliert durch den Text blättern.

Da diese Datei zufällig 20.445 Zeilen enthält, entspricht dieser Befehl der Verwendung der Option „-6“:

tail +20440 list-1.txt

Verwenden von Bytes mit Schwanz

Du kannst sagen tail um Offsets in Bytes anstelle von Zeilen zu verwenden, indem Sie die -c (Byte)-Option. Dies kann nützlich sein, wenn Sie eine Textdatei haben, die in Datensätzen normaler Größe formatiert wurde. Beachten Sie, dass ein Zeilenumbruchzeichen als ein Byte zählt. Dieser Befehl zeigt die letzten 93 Bytes in der Datei an:

tail -c 93 list-2.txt

Sie können das kombinieren -c (Bytes) Option mit der + (count from the start of the file) -Modifikator und geben Sie einen Offset in Bytes an, gezählt ab dem Anfang der Datei:

tail -c +351053 list-e.txt

Paspel in den Schwanz

Zuvor haben wir die Ausgabe von tail in less . Wir können auch die Ausgabe von anderen Befehlen an weiterleiten tail.

Um die fünf Dateien oder Ordner mit den ältesten Änderungszeiten zu identifizieren, verwenden Sie die -t (nach Änderungszeit sortieren) Option mit ls , und leiten Sie die Ausgabe in tail.

ls -tl | tail -5

Das head Befehl listet Textzeilen vom Anfang einer Datei auf. Wir können das kombinieren mit tail um einen Abschnitt der Datei zu extrahieren. Hier verwenden wir die head Befehl zum Extrahieren der ersten 200 Zeilen aus einer Datei. Das wird eingespeist tail, die die letzten zehn Zeilen extrahiert. Dadurch erhalten wir die Zeilen 191 bis Zeile 200. Das sind die letzten zehn Zeilen der ersten 200 Zeilen:

head -n 200 list-1.txt | tail -10

Dieser Befehl listet die fünf speicherintensivsten Prozesse auf.

ps aux | sort -nk +4 | tail -5

Lass uns das aufschlüsseln.

Das ps Befehl zeigt Informationen über laufende Prozesse an. Die verwendeten Optionen sind:

  • ein: Listet alle Prozesse auf, nicht nur für den aktuellen Benutzer.
  • du: Zeigt eine benutzerorientierte Ausgabe an.
  • x: Listet alle Prozesse auf, einschließlich derer, die nicht in einem TTY ausgeführt werden.

Das sort Befehl sortiert die Ausgabe von ps . Die Optionen, die wir verwenden mit sort sind:

  • nein: Numerisch sortieren.
  • k +4: Sortieren nach der vierten Spalte.

Das tail -5 Befehl zeigt die letzten fünf Prozesse aus der sortierten Ausgabe an. Dies sind die fünf speicherhungrigsten Prozesse.

Verwenden von tail zum Verfolgen von Dateien in Echtzeit

Das Verfolgen neuer Texteinträge, die in einer Datei – normalerweise einer Protokolldatei – eingehen, ist einfach mit tail. Übergeben Sie den Dateinamen in der Befehlszeile und verwenden Sie das -f (folgen) Option.

tail -f geek-1.log

Wenn jeder neue Protokolleintrag zur Protokolldatei hinzugefügt wird, aktualisiert tail seine Anzeige im Terminalfenster.

Sie können die Ausgabe so verfeinern, dass sie nur Zeilen von besonderer Relevanz oder Interesse enthält. Hier verwenden wir grep zu nur Zeilen anzeigen, die enthalten das Wort „Durchschnitt“:

tail -f geek-1.log | grep average

Um die Änderungen an zwei oder mehr Dateien zu verfolgen, übergeben Sie die Dateinamen in der Befehlszeile:

tail -f -n 5 geek-1.log geek-2.log

Jeder Eintrag ist mit einer Kopfzeile versehen, die anzeigt, aus welcher Datei der Text stammt.

Ausgabe von tail -f -n 5 geek-1.log geek-2.log

Die Anzeige wird jedes Mal aktualisiert, wenn ein neuer Eintrag in einer verfolgten Datei eintrifft. Um den Aktualisierungszeitraum anzugeben, verwenden Sie die -s (Schlafperiode) Option. Das sagt tail einige Sekunden, in diesem Beispiel fünf, zwischen den Dateiüberprüfungen warten.

tail -f -s 5 geek-1.log

Zugegeben, anhand eines Screenshots kann man es nicht erkennen, aber die Updates erfolgen alle zwei Sekunden. Die neuen Dateieinträge werden alle fünf Sekunden erstellt.

Ausgabe von tail -f -s 5 geek-1.log

Wenn Sie den Textzusätzen in mehr als einer Datei folgen, können Sie die Kopfzeilen unterdrücken, die angeben, aus welcher Protokolldatei der Text stammt. Verwenden Sie die -q (leise) Möglichkeit dazu:

tail -f -q geek-1.log geek-2.log

Die Ausgabe der Dateien wird in einer nahtlosen Textmischung angezeigt. Es gibt keinen Hinweis, aus welcher Protokolldatei jeder Eintrag stammt.

Schwanz hat immer noch Wert

Der Zugriff auf die Systemprotokolldateien erfolgt zwar jetzt durch journalctl, tail hat noch einiges zu bieten. Dies gilt insbesondere, wenn es in Verbindung mit anderen Befehlen verwendet wird, indem Sie in oder aus tail.

systemd vielleicht die Landschaft verändert haben, aber es gibt immer noch einen Platz für traditionelle Dienstprogramme, die der Unix-Philosophie entsprechen, eine Sache gut zu machen.

Continue Reading
Click to comment

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Tendencia