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.
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
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
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).
Um dieselbe Ausgabe im BSD-Unix-Stil anzuzeigen, verwenden Sie die Optionen „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.
Um alle Prozesse anzuzeigen, die von einem bestimmten Benutzerkonto ausgeführt werden, verwenden Sie den folgenden Befehl.
$ps –U –u
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
Um alle Prozesse in der Hierarchie anzuzeigen, können wir den folgenden Befehl verwenden.
$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
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
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.
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
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
Leave a Reply