Wie man den Linux-Befehl top verwendet (und seine Ausgabe versteht)

  • Dave McKay

    @TheGurkha

  • Mai 12, 2020, 8:00 Uhr EDT
Ein Terminal-Prompt auf einem Linux-Laptop-PC.
Fatmawati Achmad Zaenuri/

Der Linux top-Befehl gehört zu den Urgesteinen der Unix-artigen Betriebssysteme. Seine utilitaristische Anzeige ist vollgepackt mit nützlichen Informationen über die laufenden Prozesse und die Ressourcenauslastung Ihres Systems. Aber wussten Sie, dass er auch Farben, Hervorhebungen und sogar elementare Graphen unterstützt?

Ein informationsreiches Dashboard

Den top-Befehl gibt es seit 1984, und es gibt viele Varianten von ihm. Für diesen Artikel verwenden wir Ubuntu 18.04 mit allen Patches und der Version 3.3.12 von top. Außerdem haben wir alles auf zwei weiteren Testrechnern abgeglichen, auf denen Fedora und Manjaro laufen.

Die Standardanzeige top packt so viele Informationen wie möglich in das Terminalfenster. Informationen sind eine Voraussetzung für die Administration, also ist das eine gute Sache. Eine der Eigenschaften eines guten Systemadministrators ist die Fähigkeit, aufkommende Probleme zu erkennen und sich mit ihnen zu beschäftigen, bevor sie den Betrieb beeinträchtigen. top bietet Ihnen ein Dashboard mit vielen verschiedenen Systemmetriken, die Ihnen dabei helfen, genau das zu tun.

Werbung

Die Anzeige ist am besten als funktional und nicht als intuitiv zu beschreiben, und Abkürzungen gibt es zuhauf. Wenn Sie das erste Mal auf top stoßen, fühlt es sich verkrampft, kryptisch und abschreckend an. Mit ein paar Tastendrücken können Sie jedoch den Inhalt und das Format der Anzeige auf das abstimmen, was für Sie wichtig ist.

Prüfen Sie Ihre Version von top

Um zu prüfen, welche Version von top Sie haben, geben Sie Folgendes in ein Terminal-Fenster ein:

top -v

top -v in einem Terminal-Fenster.

Wenn Ihre Version weit hinter 3.3.12 liegt, unterstützt sie möglicherweise nicht alle Funktionen, die wir behandeln werden.

Die Standardanzeige

Sie können top starten, indem Sie Folgendes eingeben und auf „Enter“ drücken:

top

top in einem Terminalfenster.

Anzeige

Die Standardanzeige enthält zwei Informationsbereiche: den Übersichtsbereich (oder Dashboard) und den Aufgabenbereich (oder Prozessliste). Standardmäßig aktualisiert top seine Anzeige alle drei Sekunden – Sie werden ein leichtes Flackern bemerken, wenn es das tut.

Die standardmäßige obere Anzeige in einem Terminalfenster.

Die erste Zeile der Zahlen auf dem Dashboard enthält die Uhrzeit, wie lange Ihr Computer bereits läuft, die Anzahl der angemeldeten Personen und wie hoch die durchschnittliche Auslastung in den letzten ein, fünf und 15 Minuten war. Die zweite Zeile zeigt die Anzahl der Tasks und deren Status: laufend, gestoppt, schlafend oder Zombie.

Die dritte Zeile zeigt die folgenden Werte der Zentraleinheit (CPU) an:

  • us: Menge der Zeit, die die CPU mit der Ausführung von Prozessen für Personen im „Userspace“ verbringt.“
  • sy: Menge der Zeit, die mit der Ausführung von Prozessen für das System im „Kernel-Space“ verbracht wird.
  • ni: Betrag der Zeit, die mit der Ausführung von Prozessen mit einem manuell eingestellten „nice“-Wert verbracht wird.
  • id: Betrag der CPU-Leerlaufzeit.
  • wa: Menge der Zeit, die die CPU mit dem Warten auf die Fertigstellung von E/A verbringt.
  • hi: Zeit, die für die Bedienung von Hardware-Interrupts aufgewendet wird.
  • si: Zeit, die für die Bedienung von Software-Interrupts aufgewendet wird.
  • st: Zeit, die durch die Ausführung virtueller Maschinen verloren geht („Steal Time“).

Die vierte Zeile zeigt die Gesamtmenge (in Kibytes) des physischen Speichers und wie viel davon frei, verwendet und gepuffert oder zwischengespeichert ist.

Die fünfte Zeile zeigt die Gesamtmenge (ebenfalls in Kibytes) des Swap-Speichers und wie viel davon frei, verwendet und verfügbar ist. Letzteres schließt Speicher ein, der voraussichtlich aus Caches wiederhergestellt werden kann.

Anzeige

Die Spaltenüberschriften in der Prozessliste lauten wie folgt:

  • PID: Prozess-ID.
  • USER: Der Besitzer des Prozesses.
  • PR: Prozesspriorität.
  • NI: Der Nice-Wert des Prozesses.
  • VIRT: Menge des vom Prozess verwendeten virtuellen Speichers.
  • RES: Menge des vom Prozess verwendeten residenten Speichers.
  • SHR: Menge des vom Prozess verwendeten gemeinsamen Speichers.
  • S: Status des Prozesses. (Siehe die Liste unten für die Werte, die dieses Feld annehmen kann).
  • %CPU: Der Anteil der CPU-Zeit, den der Prozess seit der letzten Aktualisierung verwendet hat.
  • %MEM: Der Anteil des verwendeten physischen Speichers.
  • TIME+: Die gesamte von der Aufgabe verbrauchte CPU-Zeit in Hundertstelsekunden.
  • COMMAND: Der Befehlsname oder die Befehlszeile (Name + Optionen).

Speicherwerte werden in Kibibytes angezeigt. Die Spalte COMMAND befindet sich rechts außerhalb des Bildschirms – sie passte nicht in das obige Bild, aber wir werden sie gleich sehen.

Der Status des Prozesses kann einer der folgenden sein:

  • D: Ununterbrochener Schlaf
  • R: Laufend
  • S: Schlafend
  • T: Verfolgt (angehalten)
  • Z: Zombie

Drücken Sie Q, um den Prozess zu beenden top.

Durch die Anzeige blättern

Mit den Pfeiltasten nach oben oder unten, Home, End und Page Up oder Down können Sie sich nach oben und unten bewegen und auf alle Prozesse zugreifen.

Anzeige

Drücken Sie den Pfeil nach links oder rechts, um die Prozessliste seitlich zu bewegen. Dies ist nützlich, um alle Spalten zu sehen, die nicht in die Grenzen des Terminalfensters passen.

Im Bild unten haben wir den rechten Pfeil ein paar Mal gedrückt, um die COMMAND-Spalte zu sehen.

Top mit der Prozessliste, die seitwärts gescrollt wurde, um die Befehlsspalte zu zeigen, in einem Terminalfenster.

Ändern der numerischen Einheiten

Lassen Sie uns die Anzeigeeinheiten auf sinnvolle Werte ändern. Drücken Sie den Großbuchstaben E, um die Einheiten für die Anzeige von Speicherwerten in diesen Optionen zu durchlaufen: kibibytes, mebibytes, gibibytes, tebibytes, pebibytes und exbibytes. Die verwendete Einheit ist das erste Element in den Zeilen vier und fünf.

Drücken Sie den Kleinbuchstaben „e“, um dasselbe für die Werte in der Prozessliste zu tun: kibibytes, mebibytes, gibibytes, tebibytes und pebibytes.

Werbung

Wir haben „E“ gedrückt, um die Dashboard-Speichereinheiten auf gibibytes und „e“, um die Prozesslisten-Speichereinheiten auf mebibytes einzustellen.

Top mit Gibibytes und Mebibytes für Speichereinheiten in einem Terminalfenster.

Ändern der Zusammenfassungsinhalte

Sie können die Anzeigeeinstellungen für die Zeilen im Dashboard ändern oder sie ganz entfernen.

Drücken Sie l, um die Lastzusammenfassungszeile (die erste Zeile) ein- oder auszuschalten. Wir haben die Lastübersichtszeile im Bild unten entfernt.

Lastübersichtszeile oben in einem Terminalfenster entfernt.

Wenn Sie eine Multi-Core-CPU haben, drücken Sie 1, um die Anzeige zu ändern und individuelle Statistiken für jede CPU zu sehen. Auf unserem Computer gibt es vier CPUs. Wir drücken 1, um zu sehen, wie hart jede von ihnen arbeitet.

Top mit der erweiterten CPU-Anzeige, um individuelle CPU-Statistiken zu sehen, in einem Terminal-Fenster.

Werbung

Natürlich nimmt dies mehr Bildschirmfläche innerhalb des Terminal-Fensters ein.

Sie können „t“ drücken, um die CPU-Anzeigen in einfache ASCII-Graphen umzuwandeln, die den Prozentsatz der Auslastung für jede CPU anzeigen.

Top mit ASCII-Graphen, die die CPU-Auslastung in einem Terminalfenster anzeigen.

Für jede CPU zeigt top drei Zahlen und den Graphen an. Von links nach rechts lauten die Zahlen wie folgt:

  • Der kombinierte us– und ni-Prozentsatz (Userspace+Tasks mit nicht standardmäßigen netten Einstellungen).
  • Der sy Prozentsatz (Kernel-Speicherplatz).
  • Die Gesamtsumme (gerundet auf einen ganzzahligen Wert).

Drücken Sie erneut „t“, um die Anzeige des Diagramms auf durchgehende Blockzeichen zu ändern.

Top mit ASCII-Blockgraphen, die die CPU-Auslastung zeigen, in einem Terminalfenster.

Anzeige

Drücken Sie noch einmal „t“, um die CPU-Anzeige und die Task-Zusammenfassungszeile komplett zu entfernen.

Top mit entfernten CPU- und Task-Zusammenfassungszeilen, in einem Terminalfenster.

Drücken Sie „m“, um die Speicher- und Swap-Speicher-Zeilen durch verschiedene Anzeigeoptionen zu schalten. Beim ersten Drücken wird die Statistik durch eine ASCII-Grafik ersetzt.

oben wird eine ASCII-Grafik für die Speicherstatistik in einem Terminalfenster angezeigt.

Ein weiteres Drücken ändert die Grafik in Blockzeichen.

oben wird eine ASCII-Blockgrafik für die Speicherstatistik in einem Terminalfenster angezeigt.

Drücken Sie noch einmal „m“, um die CPU-Zeilen ganz zu entfernen.

Top mit den Speicher- und Swap-Zeilen, die aus der Anzeige entfernt wurden, in einem Terminal-Fenster.

Wenn Sie wollen, können Sie CPU- und Speicher-Grafiken gleichzeitig sehen. Drücken Sie einfach „t“ und „m“, bis Sie die gewünschte Kombination erhalten.

Top mit ASCII-Diagrammen für CPU und Speicher, in einem Terminalfenster.

Farbe und Hervorhebung

Sie können „z“ drücken, um der Anzeige Farbe hinzuzufügen.

Top mit einer farbigen Darstellung, in einem Terminalfenster.

Werbung

Wenn Sie an top denken, denken Sie wahrscheinlich nicht an farbige Anzeigen und ASCII-Grafiken, aber sie sind direkt eingebaut.

Drücken Sie „y“, um laufende Aufgaben in der Prozessliste zu markieren. Drücken Sie „x“, um die Spalte zu markieren, nach der die Prozessliste sortiert ist. Sie können zwischen fettgedruckter und umgekehrter Texthervorhebung umschalten, indem Sie „b“ drücken.

Top mit laufender Aufgabe und sortierter Spalte, hervorgehoben durch umgekehrten Text, in einem Terminalfenster.

Sortieren nach Spalten

Standardmäßig wird die Prozessliste nach der %CPU Spalte sortiert. Sie können die Sortierspalte wie folgt ändern:

  • P: Die %CPU Spalte.
  • M: Die %MEM Spalte.
  • N: Die PID Spalte.
  • T: Die TIME+ Spalte.
Anzeige

Im folgenden Bild ist die Prozessliste nach der PID-Spalte sortiert.

Top mit der Prozessliste sortiert nach der PID-Spalte, in einem Terminalfenster.

Die vollständige Befehlszeile anzeigen

Durch Drücken von „c“ wird in der Spalte COMMAND zwischen der Anzeige des Prozessnamens und der vollständigen Befehlszeile umgeschaltet.

top mit der Anzeige der vollständigen Befehlszeile in der Spalte command, in einem Terminalfenster.

Um einen „Baum“ von Prozessen zu sehen, die von anderen Prozessen gestartet oder erzeugt wurden, drücken Sie V.

Prozesse für einen einzelnen Benutzer anzeigen

Drücken Sie „u“, um die Prozesse für einen einzelnen Benutzer anzuzeigen. Sie werden nach dem Namen oder der UID gefragt.

Benutzeraufforderung in einem Terminalfenster.

Anzeige

Tippen Sie den Namen oder die UID der Person ein, die Sie überwachen möchten. Wir geben „dave“ ein und drücken „Enter“. Jetzt gehören die einzigen Prozesse im Aufgabenbereich dem Benutzer dave.

Top zeigt Aufgaben für einen einzelnen Benutzer dave in einem Terminalfenster an.

Nur aktive Aufgaben sehen

Drücken Sie I, um nur aktive Aufgaben zu sehen.

Nur aktive Aufgaben anzeigen, in einem Terminalfenster.

Aufgaben, die seit der letzten Aktualisierung keine CPU verbraucht haben, werden nicht angezeigt.

Wie viele Prozesse anzeigen

Drücken Sie „n“, um die Anzeige auf eine bestimmte Anzahl von Zeilen zu beschränken, unabhängig davon, ob die Aufgaben aktiv sind. Sie werden nach der Anzahl der anzuzeigenden Prozesse gefragt.

Oben werden Sie nach der Anzahl der anzuzeigenden Zeilen in einem Terminalfenster gefragt.

Wir haben 10 eingegeben und die Eingabetaste gedrückt, also erscheinen 10 Prozesse im Aufgabenbereich.

top Anzeige von zehn Prozessen im Aufgabenbereich, in einem Terminalfenster.

Prozess neu bewerten

Sie können „r“ drücken, um den nice-Wert (Priorität) für einen Prozess zu ändern. Sie werden zur Eingabe der Prozess-ID aufgefordert. Drücken Sie einfach die Eingabetaste, um die Prozess-ID des Tasks am oberen Rand des Prozessfensters zu verwenden. Wir geben 7800 ein, was zufällig die Prozess-ID einer Instanz von Firefox ist.

Oben wird nach der Prozess-ID eines Prozesses in einem Terminal-Fenster gefragt.

Werbung

Nachdem Sie die Eingabetaste gedrückt haben, werden Sie aufgefordert, den neuen Nice-Wert für den Prozess einzugeben. Wir geben 15 ein und drücken dann die Eingabetaste.

Top, um einen Prozess in einem Terminalfenster auf den nice-Wert 15 zu setzen.

Der neue nice-Wert wird sofort auf den Prozess angewendet.

Verbunden: So setzen Sie Prozessprioritäten mit nice und renice unter Linux

Prozess beenden

Drücken Sie „k“, um einen Prozess zu beenden. Sie werden dann nach der Prozess-ID gefragt, die Sie töten wollen. Tatsächlich können Sie dem Prozess ein beliebiges Signal senden. Wir werden den Prozess 7879 töten, der aufgehört hat zu antworten.

Oben werden Sie in einem Terminalfenster nach einer Prozess-ID gefragt.

Anzeige

Sie erhalten die Möglichkeit, das Signal einzugeben, das Sie senden möchten. Sie können es per Name oder Nummer angeben. Wenn Sie einfach die Eingabetaste drücken, sendet top das SIGTERM (Kill) Signal.

Oben wird in einem Terminalfenster nach einem zu sendenden Signal gefragt.

Sobald Sie die Eingabetaste drücken, wird das Signal an den Prozess gesendet.

Verbunden: Wie man Prozesse vom Linux-Terminal aus beendet

Anpassen der Anzeige

Sie können auch die Farben und Spalten, die angezeigt werden, anpassen. Wir werden die Farbe für die Eingabeaufforderungen ändern, die standardmäßig rot ist.

Oben wird eine hellrote Eingabeaufforderung in einem Terminalfenster angezeigt.

Drücken Sie die Großbuchstaben Z, um zur Seite mit den Farbeinstellungen zu gelangen. Im oberen Teil des Bildschirms werden die Farben angezeigt, die von den verschiedenen Anzeigeelementen verwendet werden. Um anzugeben, welches Anzeigeelement Sie ändern möchten, drücken Sie eine der folgenden Tasten, wobei die Groß- und Kleinschreibung zu beachten ist:

  • S: Zusammenfassungsdatenbereich.
  • M: Meldungen und Eingabeaufforderungen.
  • H: Spaltenüberschriften.
  • T: Aufgabeninformationen in der Prozessliste.

Wir drücken M, um die Eingabeaufforderungen zu ändern.

Oberste Farbeinstellungsseite mit gewählter Option M, in einem Terminalfenster.

Anzeige

Um eine Farbe auszuwählen, drücken Sie eine der folgenden Zahlen:

  • 0: Schwarz.
  • 1: Rot.
  • 2: Grün.
  • 3: Gelb.
  • 4: Blau.
  • 5: Magenta.
  • 6: Cyan.
  • 7: Weiß.

Wir drücken 6, um Cyan zu verwenden.

Oberes Farbeinstellungsfenster mit gewählter Farbe 6, in einem Terminalfenster.

Drücken Sie die Eingabetaste, um Ihre Einstellungen zu speichern. Die Eingabeaufforderungen werden nun in der von Ihnen gewählten Farbe angezeigt.

top mit einer cyanfarbenen Eingabeaufforderung, in einem Terminalfenster.

Wir können auch die angezeigten Spalten im Bildschirm „Felderverwaltung“ ändern. Drücken Sie F, um den Bildschirm „Felderverwaltung“ aufzurufen.

oben mit dem Bildschirm

Felder, die angezeigt werden, haben ein Sternchen (* ) neben sich und sind fett hervorgehoben. Drücken Sie die Pfeile nach oben und unten, um die Markierung durch die Liste der Felder zu bewegen.

Anzeige

Wenn Sie die Markierung vom unteren Ende einer Spalte wegbewegen, erscheint sie am oberen Ende der nächsten (es sei denn, Sie befinden sich am unteren Ende der letzten Spalte). Wenn Sie die Markierung vom oberen Ende einer Spalte wegbewegen, erscheint sie am unteren Ende der vorherigen (es sei denn, Sie befinden sich am oberen Ende der ersten Spalte).

Wir haben die Markierung auf den Eintrag COMMAND bewegt und dann „d“ gedrückt, um das Sternchen zu entfernen (*). Anschließend gehen wir zum Eintrag UID und drücken „d“, um ein Sternchen neben diesen Eintrag zu setzen. Das bedeutet, dass die COMMAND-Spalte nicht angezeigt wird, aber die UID-Spalte schon.

oben die Anzeige der Feldverwaltung mit der ausgewählten UID-Spalte in einem Terminalfenster.

Während die Markierung auf der UID-Spalte steht, drücken wir „s“, um die Prozessliste nach der UID-Spalte zu sortieren.

top Anzeige des Feldverwaltungsbildschirms mit der UID-Spalte als Sortierspalte in einem Terminalfenster.

Drücken Sie die Eingabetaste, um Ihre Einstellungen zu speichern, und drücken Sie dann „q“, um den Bildschirm „Feldverwaltung“ zu verlassen.

oben mit der angezeigten UID-Spalte, die als Sortierspalte in einem Terminalfenster eingestellt ist.

Anzeige

Die UID-Spalte hat die COMMAND-Spalte ersetzt, und die Prozessliste wird nach ihr sortiert.

Alternativer Anzeigemodus

Dies funktioniert am besten im Vollbildmodus. Drücken Sie „A“, um vier Bereiche in der Prozessliste anzuzeigen, und drücken Sie dann „a“, um von Bereich zu Bereich zu wechseln.

Top mit aktivierter alternativer Anzeige in einem Terminalfenster.

Jeder Bereich hat eine andere Sammlung von Spalten, aber jeder ist auch über die Feldverwaltung anpassbar. Dies gibt Ihnen die Möglichkeit, eine bildschirmfüllende, angepasste Anzeige zu haben, die unterschiedliche Informationen in jedem Bereich zeigt, und die Möglichkeit, jeden Bereich nach einer anderen Spalte zu sortieren.

Andere Tastenanschläge

Nachfolgend finden Sie einige weitere Tasten, die Sie in top nützlich finden könnten:

  • W: Speichern Sie Ihre Einstellungen und Anpassungen, so dass sie beim nächsten Start von top noch wirksam sind.
  • d: Stellen Sie eine neue Bildwiederholrate ein.
  • Leertaste: Zwingt top, die Anzeige sofort zu aktualisieren.

Top Banana

Wie wir gesehen haben, hat top ein ganz schönes Repertoire. Andere Programme, wie htop, haben sich davon inspirieren lassen, aber jedes hat seine eigene Sicht der Dinge.

Werbung

Allerdings ist top überall installiert. Wenn Sie in Unternehmen gehen, um sich Netzwerke oder Server anzuschauen, wird Ihnen oft gesagt, dass auf den Live-Servern absolut nichts verändert werden kann. Der Kunde macht die Regeln, also muss man das benutzen, was bereits installiert ist.

Auch wenn Sie ein anderes Monitoring-Tool bevorzugen, sollten Sie top kennenlernen. Früher oder später werden Sie sich wahrscheinlich in einer Situation wiederfinden, in der Sie nur noch darauf zugreifen können.

Dave McKay
Dave McKay hat zum ersten Mal mit Computern gearbeitet, als Lochstreifen noch in Mode waren, und seitdem hat er immer programmiert. Nach über 30 Jahren in der IT-Branche ist er nun hauptberuflich Technologie-Journalist. Während seiner Karriere arbeitete er als freiberuflicher Programmierer, Manager eines internationalen Software-Entwicklungsteams, Projektmanager für IT-Services und zuletzt als Datenschutzbeauftragter. Dave ist ein Linux-Evangelist und Open-Source-Befürworter.Read Full Bio “

Schreibe einen Kommentar

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