Website-Suche

So verwenden Sie den PS-Befehl unter Linux: Leitfaden für Anfänger


Der Befehl ps ist ein standardmäßiges Befehlszeilenprogramm, das uns einen Einblick in die Prozesse geben kann, die derzeit auf einem Linux-System ausgeführt werden. Es kann uns viele hilfreiche Informationen über diese Prozesse geben, einschließlich ihrer PID (Prozess-ID), TTY, dem Benutzer, der einen Befehl oder eine Anwendung ausführt, und mehr.

Das hört sich zwar ziemlich einfach an, aber täuschen Sie sich nicht, der ps-Befehl kann ziemlich kompliziert werden. Es akzeptiert viele verschiedene Optionen und kann in unglaublich vielen Situationen nützlich sein, sogar als Teil eines Bash-Skripts.

In diesem Tutorial stellen wir Ihnen den Befehl ps vor und gehen alle seine hilfreichsten Optionen durch, einschließlich vieler Beispiele. Am Ende des Lesens dieses Leitfadens werden Sie mit allen Informationen ausgestattet sein, die Sie benötigen, um dieses hilfreiche Befehlszeilentool optimal zu nutzen.

In diesem Tutorial lernen Sie:

  • So listen Sie alle Prozesse auf, die auf einem System ausgeführt werden
  • So verwenden Sie den ps-Befehl anhand von Beispielen

Verwenden des Befehls ps zum Identifizieren laufender Prozesse auf einem Linux-System

So listen Sie alle Prozesse auf, die auf einem System ausgeführt werden

Der ps-Befehl kann für Anfänger etwas verwirrend sein, da er Optionen in verschiedenen Syntaxen akzeptiert. Es ist ein sehr alter Befehl, der seit den frühen 70er Jahren seinen Weg auf jedes (oder fast jedes) UNIX-, BSD- und Linux-System gefunden hat. Daher wurde die aktuelle Iteration so angepasst, dass sie Syntaxen von UNIX (Optionen, denen ein Bindestrich vorangestellt ist), BSD (Optionen ohne Bindestrich) und GNU (Optionen, denen zwei Bindestriche vorangestellt sind) akzeptiert.

Am einfachsten ist es, den Befehl ps anhand von Beispielen kennenzulernen. Um zu beginnen, verwenden Sie einige der folgenden Befehle auf Ihrem eigenen System, und Sie werden es schließlich beherrschen.

Der folgende Befehl zeigt alle laufenden Prozesse auf dem System an und ist wahrscheinlich der am häufigsten verwendete ps-Befehl im Allgemeinen. Wenn es nur eine Sache gibt, an die Sie sich nach dem Lesen dieses Tutorials erinnern, dann sollte es dieser Befehl sein.


ps aux

Beachten Sie, dass dies die BSD-Syntax (keine Bindestriche) verwendet. Die Verwendung der gleichen Optionen in einer anderen Syntax kann zu einem anderen Ergebnis führen, also ja, die Syntax spielt eine Rolle. Mit diesen Optionen können Sie Folgendes tun:

  • A – Prozesse von allen Benutzern anzeigen.
  • u – Benutzerorientiertes Format anzeigen (zeigt zusätzliche Informationen über laufende Prozesse an).
  • X – Listet Prozesse auf, die zu keinem TTY gehören.

Dies wird wahrscheinlich eine große Ausgabe in Ihrem Terminal erzeugen. Selbst auf frisch installierten Systemen laufen in der Regel einige Prozesse im Hintergrund ab, und ps wird jeden einzelnen identifizieren. Versuchen Sie, den Befehl auf less oder more zu leiten, um die Ausgabe besser zu verwalten.


ps aux | less

Ausgabe des Befehls ps aux

Wie Sie sehen können, gibt es in unserer Ausgabe eine ganze Reihe von Spalten, und einige von ihnen mögen für Anfänger kryptisch sein. Schauen wir uns an, was jeder einzelne bedeutet:

  • USER – Der Benutzer, unter dem der Prozess ausgeführt wird.
  • PID – Die Prozess-ID (jedem Prozess wird eine Nummer als ID zugewiesen).
  • %CPU – Wie viel CPU-Prozentsatz der Prozess auslastet.
  • %MEM – Wie viel RAM der Prozess in Prozent verwendet.
  • VSZ – Größe des virtuellen Speichers des Prozesses.
  • RSS – Die Größe des physischen Speichers, die der Prozess verwendet.
  • TTY – An welchen TTY (Terminalbildschirm) der Prozess gebunden ist, oder ? für keinen.
  • STAT – Der staatliche Code des Prozesses; Es gibt viele, aber einige gängige sind S (schlafend) und R (laufend).
  • START – Der Zeitpunkt, zu dem der Prozess gestartet wurde.
  • TIME – Die kumulierte CPU-Zeit, die der Prozess verwendet hat.
  • COMMAND – Der vollständige Befehl, der zum Erzeugen des laufenden Prozesses verwendet wurde.

So verwenden Sie den ps-Befehl anhand von Beispielen

Nachdem Sie sich nun mit dem Befehl ps vertraut gemacht haben, gehen wir einige andere hilfreiche und gängige Beispiele durch.

Die folgende UNIX-Syntax wird häufig anstelle der BSD-Syntax verwendet, die wir oben gezeigt haben. Es ist prägnanter, so dass es einfacher ist, die Dinge auf einen Blick zu sehen, aber nicht so detailliert wie ps aux.


ps -ef
  • -e – Anzeige laufender Prozesse von allen Benutzern.
  • -f – vollständige Formatliste anzeigen (zeigt zusätzliche Informationen über laufende Prozesse an).

Ausgabe des Befehls ps -ef

Unsere Spalten haben sich ein wenig verändert, aber sie bedeuten meistens das Gleiche wie bei der BSD-Syntax. Hier ist ein kurzer Überblick über die neuen:

  • UID – Benutzer-ID, identisch mit USER in der BSD-Syntax.
  • PPID – Die Prozess-ID des übergeordneten Prozesses.
  • C – CPU-Auslastung, wie %CPU in der BSD-Syntax.
  • STIME – Startzeit, wie START in der BSD-Syntax.

Wenn Sie solche detaillierten Informationen nicht benötigen, verwenden Sie einfach die Option -e. Die ax-Optionen werden das Gleiche erreichen.


ps -e
PID TTY          TIME CMD
  1 ?        00:00:02 systemd
  2 ?        00:00:00 kthreadd
  3 ?        00:00:00 rcu_gp
........
ps ax
PID TTY      STAT   TIME COMMAND
  1 ?        Ss     0:02 /sbin/init splash
  2 ?        S      0:00 [kthreadd]
  3 ?        I<     0:00 [rcu_gp]

Eine der besten Eigenschaften von ps ist, dass Sie nach jeder beliebigen Spalte sortieren können. So sortieren Sie Prozesse beispielsweise nach der Menge an Arbeitsspeicher, die sie verwenden:


ps aux --sort=-%mem | less

Sortieren der ps-Ausgabe nach Speicherauslastung

Oder sortieren Sie nach CPU-Auslastung:


ps aux --sort=-%cpu | less

Wenn Sie nach einem bestimmten Prozess suchen, ist es am besten, nach grep zu pipen. Dies ist besonders nützlich, wenn Sie schnell feststellen müssen, ob ein Prozess ausgeführt wird oder nicht, oder wenn Sie die Prozess-ID benötigen.


ps aux | grep apache2

Mit der Option o in BSD und -o in UNIX können wir festlegen, welche Spalten wir sehen möchten. Dadurch ist die ps-Ausgabe sehr anpassbar und listet nur die Informationen auf, die wir für relevant halten. Alles, was Sie tun müssen, ist, jede gewünschte Spalte durch Kommas getrennt aufzulisten.


ps axo pid,%cpu,%mem,command | less

Spalten in BSD-Syntax isolieren

Hier ist ein weiteres Beispiel, aber mit UNIX-Syntax und Sortierung der Ausgabe nach CPU-Auslastung.


ps -eo pid,ppid,c --sort=-c | less

Isolieren von Spalten und Sortieren der Ergebnisse nach CPU-Auslastung in UNIX-Syntax

Abschließende Gedanken

In dieser Anleitung haben wir gesehen, wie Sie den Befehl ps unter Linux verwenden, um laufende Prozesse auf dem System aufzulisten. Wir haben auch verschiedene Befehlszeilenbeispiele gelernt, die es uns ermöglichen, die benötigten Informationen zu isolieren.

Die wichtigste Erkenntnis aus diesem Leitfaden ist der ps aux-Befehl. Mit diesem Befehl können Sie jederzeit jeden Prozess sehen, der auf Ihrem System abläuft, und alle relevanten Informationen identifizieren. Durch das Piping an grep wird der Befehl noch leistungsfähiger. Für eine genauere Kontrolle können Sie jederzeit unseren Leitfaden oder die ps-Handbuchseite konsultieren.

Verwandte Artikel: