Articles

ps aux-Befehl und ps-Befehl erklärt

In diesem Tutorial wird erläutert, wie Sie den Befehl ps unter Linux verwenden. Es bietet auch 10+ praktische Beispiele für den ps-Befehl. Erfahren Sie, wie Sie die Ausgabe des Befehls ps aux im Detail lesen.

Eine kurze Einführung in den Befehl ps

Der Befehl ps (Process status) ist einer der am häufigsten verwendeten Befehle in Linux. Normalerweise wird es verwendet, um mehr und detaillierte Informationen über einen bestimmten Prozess oder alle Prozesse zu erhalten. Zum Beispiel wird es verwendet, um zu wissen, ob ein bestimmter Prozess ausgeführt wird oder nicht, wer welchen Prozess im System ausführt, welcher Prozess mehr Speicher oder CPU verwendet, wie lange ein Prozess ausgeführt wird usw.

LAB Setup

Starten Sie zum Üben einige Anwendungen und lassen Sie sie laufen. Wechseln Sie das Benutzerkonto und wiederholen Sie den gleichen Vorgang.

Laboreinrichtung für die Praxis des ps-Befehls

Angenommen, Sie sind ein Systemadministrator und möchten als Systemadministrator wissen, was im System vor sich geht.In diesem Fall können Sie den Befehl ps verwenden, um die erforderlichen Informationen abzurufen.

Mit dem Befehl ps

Terminal öffnen und den Befehl ps ausführen

ps-Befehl ohne Option und Argument

Ohne Option und Argument zeigt der Befehl ps nur den Prozess an, der unter dem angemeldeten Benutzerkonto vom aktuellen Terminal aus ausgeführt wird.

Sie fragen sich vielleicht, warum der Befehl ps zwei Prozesse anzeigt, während wir bisher keinen Prozess von diesem Terminal aus ausgeführt haben.

Nun… der erste Prozess zeigt den Prozess an, unter dem dieses Terminal geöffnet wird. Dieser Prozess bleibt offen, bis das Terminal geöffnet wird.

Zweiter Prozess zeigt den zuletzt ausgeführten Befehl in diesem Terminal an.

Angeben von Optionen mit dem Befehl ps

Der Befehl ps akzeptiert Optionen in drei Stilen.

BSD-UNIX-Stil: – In diesem Stil werden Optionen ohne führenden Bindestrich (z. B. „aux“) geliefert.

AT & T Unix-Stil: – In diesem Stil werden Optionen mit einem führenden Bindestrich (z. B. „-aux“) geliefert.

GNU Linux-Stil: – In diesem Stil werden Optionen mit doppelten führenden Bindestrichen (z. B. „–sort“) geliefert.

Obwohl der Befehl PS Optionen im Mix-Stil akzeptiert, sollten Sie immer nur einen Stil verwenden, um die Optionen anzugeben.

Grundlegende Beispiele des Befehls ps

Um alle laufenden Prozesse im System zu drucken, verwenden Sie einen der folgenden Befehle.

$ps –A$ps -e

ps -A- und ps -e-Befehle

Die Optionen A und e geben einen Überblick über die processes.To drucken Sie die Detailübersicht aus, verwenden Sie mit diesen Optionen die Optionen f (Vollformat) und F (extra Vollformat).

ps -ef- und ps -af-Befehle

Um dieselbe Ausgabe im BSD-Unix-Stil anzuzeigen, verwenden Sie die Optionen „aux“.

Befehl ps aux

Der Befehl „ps aux“ ist der von Linux-Administratoren am häufigsten verwendete Befehl. Bevor wir zum nächsten Beispiel übergehen, wollen wir die in diesem Befehl verwendeten Optionen im Detail verstehen.

ps aux command options

a:- Diese Option gibt die laufenden Prozesse aller Benutzer aus.

u: – Diese Option zeigt die Spalte Benutzer oder Eigentümer in der Ausgabe an.

x:- Diese Option gibt die Prozesse aus, die nicht vom Terminal ausgeführt wurden.

Mit den Optionen „aux“ werden alle laufenden Prozesse im System gedruckt, unabhängig davon, von wo aus sie ausgeführt wurden.

Die ps aux-Befehlsausgabe Beschreibung Spalte für Spalte
Spalte Beschreibung
BENUTZER Das Benutzerkonto, unter dem dieser Prozess ausgeführt wird
PID Prozess-ID dieses Prozesses
%CPU CPU-Zeit, die von diesem Prozess verwendet wird (in Prozent).
%MEM Von diesem Prozess verwendeter physischer Speicher (in Prozent).
VSZ Virtueller Speicher, der von diesem Prozess verwendet wird (in Bytes).
RSS Resident Set Size, der nicht austauschbare physische Speicher, der von diesem Prozess verwendet wird (in KiB)
TTY Terminal, von dem aus dieser Prozess gestartet wird. Fragezeichen (?) Zeichen bedeutet, dass dieser Prozess nicht von einem Terminal aus gestartet wird.
STAT Prozessstatus. In der nächsten Tabelle erläutert.
START Startzeit und Datum dieses Prozesses
ZEIT Gesamte von diesem Prozess verwendete CPU-Zeit
BEFEHL Der Befehl mit all seinen Argumenten, der diesen Prozess gestartet hat
ps aux stat code mit Beschreibung
D unterbrechungsfreier Schlaf (normalerweise IO)
R läuft oder lauffähig (in der Laufwarteschlange)
S unterbrechbarer Schlaf (Warten auf den Abschluss eines Ereignisses)
T gestoppt durch Jobsteuersignal
t gestoppt durch Debugger während der Ablaufverfolgung
w Paging (nicht gültig seit 2.6.xx kernel)
x tot (sollte niemals gesehen werden)
Z nicht mehr existierender („Zombie“) Prozess, beendet, aber nicht von seinem Elternteil geerntet
< hohe Priorität (nicht nett zu anderen Benutzern)
N niedrige Priorität (nett zu anderen Benutzern)
L hat Seiten im Speicher gesperrt (für Echtzeit- und benutzerdefinierte E/ A)
s ist ein Sitzungsleiter
l ist multithread (mit CLONE_THREAD, wie NPTL pthreads)
+ ist im Vordergrund Prozessgruppe
Schlüsselpunkte
  • Die CPU-Auslastung wird als Prozentsatz der Zeit ausgedrückt, die während der gesamten Lebensdauer eines Prozesses für die Ausführung aufgewendet wurde.
  • Die Felder SIZE und RSS zählen einige Teile eines Prozesses nicht, einschließlich der Seitentabellen, des Kernel-Stacks, der Struktur thread_info und der Struktur task_struct.
  • SIZE ist die virtuelle Größe des Prozesses (Code+Daten+Stack).
  • Prozesse, die mit <defunct> markiert sind, sind tote Prozesse (sogenannte „Zombies“), die verbleiben, weil ihre Eltern sie nicht richtig zerstört haben.
  • Wenn die Länge des Benutzernamens größer als die Länge der Anzeigespalte ist, wird der Benutzername abgeschnitten.

10+ praktische Beispiele des Befehls ps

Um alle Prozesse anzuzeigen, die unter dem Root-Benutzerkonto ausgeführt werden, verwenden Sie den folgenden Befehl.

$ps -U root -u root

In diesem Befehl: –

-U: – Wählen Sie den Prozess basierend auf der realen Benutzer-ID oder dem Namen aus.

-u: – Wählen Sie den Prozess basierend auf der effektiven Benutzer-ID oder dem Namen aus.

RUID (Real User ID) repräsentiert den Namen des Benutzers, während EUID (Effective User ID) den Benutzer beschreibt, dessen Dateizugriffsberechtigungen vom Prozess verwendet werden.

ps -u -U Befehl

Um alle Prozesse anzuzeigen, die von einem bestimmten Benutzerkonto ausgeführt werden, verwenden Sie den folgenden Befehl.

$ps –U –u 

ps-Befehl Alle Prozesse anzeigen, die unter einem einzelnen Benutzerkonto ausgeführt werden

Verwenden Sie den folgenden Befehl, um alle Prozesse anzuzeigen, die unter einer bestimmten Gruppe ausgeführt werden.

$ps –G 

Für eine detaillierte Übersicht können wir auch die Option –G mit der Option –F kombinieren.

$ps –FG 

ps -fg Befehl

Um alle Prozesse in der Hierarchie anzuzeigen, können wir den folgenden Befehl verwenden.

$ps –A --forest

ps -A --forest

Nur bestimmte Spalte anzeigen

Standardmäßig zeigt der ps-Befehl alle Spalten an. Wenn wir nur an bestimmten Spalten interessiert sind, können wir die Ausgabe einschränken, indem wir die erforderlichen Spaltennamen als Argumente angeben.

Um beispielsweise nur die Spalten PID, USER und CMD anzuzeigen, können wir den folgenden Befehl verwenden.

$ps –eo pid,user,cmd

ps begrenzte Spalte anzeigen

Den Prozess finden, der den höchsten Speicher verwendet

Standardmäßig sortiert der Befehl ps die Ausgabe nicht. Indem wir die Sortierreihenfolge auf %MEM , können wir die Prozesse finden, die höhere Speicher verbrauchen.

Um die Sortierreihenfolge festzulegen, wird die Option –sort= verwendet. Wir können diese Option auch mit anderen Optionen kombinieren, um die spezifischere Ausgabe zu erhalten.

Lassen Sie uns zum Beispiel nur die spezifischen Felder anzeigen und sie nach Speicherverwendungen sortieren.

$ps –eo pid,user,%mem,cmd --sort=-%mem

ps-Ausgabe nach Speicherauslastung sortieren

Ausgabe begrenzen

Standardmäßig beschränkt der Befehl ps das Ergebnis in der Ausgabe nicht.Wenn wir nur daran interessiert sind, die drei wichtigsten Prozesse zu kennen, die den höchsten Speicher belegen, können wir die Ausgabe des Befehls ps im Terminal anzeigen, anstatt sie an den Befehl head umzuleiten.

Standardmäßig zeigt der Befehl head die obersten 10 Zeilen der angegebenen Quelle an.Wir können dieses Standardverhalten überschreiben, indem wir die erforderlichen Zeilennummern angeben.

Um nur die drei besten Prozesse anzuzeigen, können wir die Option „-n 4“ mit dem Befehl head verwenden.

ps limiting output

Geben Sie für 3 Ergebnisse die Ziffer 4 als Argument an. Wie in der Ausgabe des Befehls wird die erste Zeile von den Titeln belegt.

Den Prozess finden, der die höchste CPU verwendet

Genau wie wir die Prozesse mit dem höchsten Speicherverbrauch herausgefunden haben, können wir auch die Prozesse mit dem höchsten CPU-Verbrauch finden, indem wir die Ausgabe basierend auf der CPU-Spalte sortieren.Der folgende Befehl gibt beispielsweise die Top-3-Prozesse aus, sortiert nach CPU-Auslastung.

$ps –eo pid,user,%cpu,cmd –-sort=-%cpu | head –n 4

ps-Ausgabe nach CPU-Auslastung sortieren

Ermitteln der Gesamtzahl der von einem Benutzer ausgeführten Prozesse

Verwenden Sie den folgenden Befehl, um die Gesamtzahl der von einem Benutzer ausgeführten Prozesse zu ermitteln

$ps –U –u | wc –l