GNU/Linux >> LINUX-Kenntnisse >  >> Linux

15 Linux-PS-Befehl mit Beispielen

Das ps ist ein eingebauter Befehl, der in Unix/Linux-Betriebssystemen verwendet wird, um die aktuell laufenden Prozesse aufzulisten. Es zeigt einen statischen Schnappschuss mit Informationen über die Prozesse an, während top, htop und looks sich wiederholende Aktualisierungen anzeigen.

Der Befehl Ps enthält viele Optionen zum Bearbeiten der Ausgaben. Es zieht alle Informationen der Prozesse aus dem /proc virtuellen Dateisystem.

Dieses Tutorial konzentriert sich darauf, die Verwendung des Befehls ps zusammen mit einigen praktischen Beispielen zu erklären

Die Syntax des Befehls ps

Die grundlegende Syntax für die Verwendung des Befehls ps lautet wie folgt:

$ ps [options]

Die 'Optionen' des ps-Befehls können sein:

  • UNIX-Optionen - mit vorangestelltem Bindestrich
  • BSD-Optionen - müssen ohne Bindestrich verwendet werden
  • GNU Long-Optionen - zwei Bindestriche vorangestellt

Dies ist eine sehr einfache Verwendung des ps-Befehls. Geben Sie einfach 'ps' auf Ihrer Konsole ein, um das Ergebnis zu sehen:

$ ps

Standardmäßig werden uns vier Informationsspalten angezeigt.

  • PID ist eine Prozess-ID des laufenden Befehls (CMD)
  • TTY ist ein Ort, an dem der laufende Befehl ausgeführt wird
  • TIME gibt an, wie viel Zeit von der CPU verwendet wird, während der Befehl ausgeführt wird
  • CMD ist ein Befehl, der als aktueller Prozess ausgeführt wird

Das Ausführen des Befehls ps ohne Option ist nur ein einfachstes Format des Befehls, es gibt nicht viele Informationen zurück. Um das Beste aus dem Befehl ps herauszuholen, führen wir ihn mit zusätzlichen Optionen aus, die in den folgenden Abschnitten näher erläutert werden.

01) Alle Prozesse anzeigen (UNIX-Format)

Um alle Prozesse in Ihrem Linux-System anzuzeigen, können Sie einen der folgenden Befehle ausführen:

$ ps -A

oder:

$ ps -e

Führen Sie außerdem Folgendes aus, um alle laufenden Prozesse aufzulisten:

$ ps -r

02) Alle Prozesse anzeigen (BSD-Format)

Um alle Prozesse auf Ihrem Linux-System mit dem Befehl ps im BSD-Format anzuzeigen, können Sie die folgenden Befehle ausführen:

$ ps ax

oder

$ ps aux

Wo:

  • USER - der Benutzer führt den Prozess aus
  • PID - die Prozess-ID
  • %CPU / %MEM - der Prozentsatz von CPU / RAM, der von den Prozessen belegt wird
  • VSZ - die virtuelle Speichergröße, die von den Prozessen belegt wird
  • RSS - die Größe des physikalischen Speichers, der von den Prozessen belegt wird
  • START - Startzeit
  • STAT - der Zustand des Prozesses, in dem:S (Schlafen), R (Running), I (unterbrechbarer Schlaf).
  • Time - zeigt an, wie lange der Kernel CPU-Zeit für diesen laufenden Prozess gegeben hat.
  • COMMAND - der Befehl, der als aktueller Prozess ausgeführt wird

03) Zeigt alle Prozesse an, die durch einen Befehl ausgeführt werden

Um alle Prozesse aufzulisten, die von einem Befehl ausgeführt werden, verwenden wir die folgende Syntax:

$ ps -C <command_name>

Listen Sie beispielsweise alle Prozesse des Befehls „/usr/sbin/kerneloops“ auf, indem Sie Folgendes ausführen:

$ ps -C kerneloops

Sie können Argumente auch in Form einer durch Leerzeichen oder Kommas getrennten Liste verwenden, zum Beispiel:

$ ps -C sshd,systemd

04) Alle Prozesse anzeigen, die von einem Benutzer ausgeführt werden

Wenn Sie den Prozess nach Benutzer mit der Benutzer-ID 1000 auflisten möchten, führen Sie den folgenden Befehl aus:

$ ps -u 1000

Sie können Prozesse auch nach Benutzernamen suchen:

$ ps -U root -u root u

Der -U parameter wählt nach real user ID (RUID) . Es wählt die Prozesse aus, deren echter Benutzername oder ID sich in der Benutzerliste befindet. Die echte Benutzer-ID identifiziert den Benutzer, der den Prozess erstellt hat.

Während der -u paramater wird anhand der effektiven Benutzer-ID (EUID) auswählen

05) Prozesse anzeigen, die der Gruppe gehören

Um alle Prozesse aufzulisten, die einem bestimmten Gruppennamen gehören, führen wir den Befehl mit -fG aus Möglichkeit. Zum Beispiel:

$ ps -fG cas

Um alle Prozesse nach Gruppen-ID anzuzeigen, können Sie den Befehl mit der Option „-g“ ausführen. Zum Beispiel:

$ ps -g 1

Ausgabe:

   PID TTY          TIME CMD
     1 ?        00:00:03 systemd

06) Prozesse nach PID anzeigen

Sie können alle Prozesse nach PID auflisten, indem Sie den Befehl ps mit der Option „-fp“ ausführen. Zum Beispiel:

$ ps -fp 34531

Ausgabe:

UID         PID   PPID  C STIME TTY          TIME CMD
cas       34531      1  0 06:16 ?        00:00:00 /lib/systemd/systemd --user

Um alle Prozesse nach PPID aufzulisten, führen wir außerdem den Befehl mit der Option „--ppid“ aus:

$ ps -f --ppid 34529

Ausgabe:

UID         PID   PPID  C STIME TTY          TIME CMD
cas       34609  34529  0 06:16 ?        00:00:00 sshd: cas@pts/0

07) Prozesse nach TTY anzeigen

Um alle Prozesse per TTY anzuzeigen, können Sie den Befehl mit der Option „-t“ ausführen. Zum Beispiel:

$ ps -t tty1

08) Prozesse anzeigen, die dem aktuellen Benutzer gehören

Um alle Prozesse aufzulisten, die vom aktuellen Benutzer ausgeführt werden, führen wir den Befehl mit der Option „-x“ aus:

$ ps -x

09) Anzeige aller Prozesse mit vollständiger Formatauflistung

Lassen Sie uns zum Beispiel den Befehl ps mit -f ausführen Option, um alle Prozesse im vollständigen Format anzuzeigen:

$ ps -af

10) Alle Prozesse mit extra Format anzeigen

Führen Sie außerdem den Befehl ps mit -F aus, um die zusätzliche Liste des Ergebnisses im vollständigen Format anzuzeigen Möglichkeit. Zum Beispiel:

$ ps -F

11) Alle Prozesse im ASCII-Hierarchieformat anzeigen

Nehmen wir zur Veranschaulichung an, dass Sie alle Prozesse auf Ihrem Linux-System im ASCII-Art-Prozesshierarchieformat anzeigen möchten. Lassen Sie uns Folgendes ausführen:

$ ps af

Die Ausgabe erfolgt im „Wald“-Format:

12) Prozess in erweiterter Ausgabe anzeigen

Wenn Sie die Ausgabe beim Ausführen des Befehls ps erweitern möchten, verwenden Sie w Möglichkeit:

$ ps w

Lassen Sie uns einen Vergleich zwischen den Ausgaben von 'ps w' und 'ps' machen:

13) Darstellungsprozess nach benutzerdefiniertem Format

Sie können die folgende Syntax verwenden, um im benutzerdefinierten Format anzuzeigen:

Syntax:
$ ps --format column_name
$ ps -o column_name
$ ps o column_name

For example:
$ ps -e -o user,pid,cmd

14) Threads mit Thread-ID anzeigen

Um beispielsweise Threads mit SPID-Spalte anzuzeigen (SPID ist die Thread-ID), führen Sie Folgendes aus:

$ ps -aT

15) Zeigt die Informationen über Threads

Außerdem können Sie die Option '-L' verwenden, um Informationen über Threads in Ihrem Linux-System zu erhalten:

$ ps -aL

Die Ausgabe mit der Spalte „LWP“ zeigt Ihnen die Thread-ID:

Einige weitere Beispiele

01) Überprüfen Sie, welche Prozesse den meisten RAM beanspruchen

Der folgende Befehl zeigt den meisten Speicher an, der Prozesse verwendet, %MEM in der 1. Spalte PID in der 2. Spalte und Befehl in der 3. Spalte für alle laufenden Prozesse auf dem System:

$ ps -eo pmem,pid,cmd | sort -k 1 -nr

02) Zeigt alle Threads einer bestimmten Prozess-ID an

Dies zeigt alle Threads einer bestimmten Prozess-PID.

$ ps -Lf -p 3482

03) Zeigt Kind eines Elternprozesses

Dies zeigt alle untergeordneten Prozesse eines Prozesses an und ist nützlich, um herauszufinden, welche Prozesse aus diesem Hauptprozess abgezweigt wurden.

$ ps -o pid,pcpu,pmem,uname,comm -C apache2

04) Zeigt an, wie lange der Prozess läuft

Der folgende Befehl zeigt an, wie lange der „mysql“-Prozess auf dem System läuft:

$ ps -e -o pid,comm,etime | grep mysql
3107 mysqld_safe 18-07:01:53
3469 mysqld 18-07:01:52
  • etime :verstrichene Zeit seit dem Start des Prozesses im Format [[DD-]hh:]mm:ss.
  • etimes :verstrichene Zeit seit dem Start des Prozesses in Sekunden.

05) Sicherheitsinformationen abrufen

Wenn wir sehen möchten, wer derzeit auf Ihrem Server angemeldet ist, können wir dies mit dem Befehl ps sehen:

$ ps -eo pid,user,args

Jetzt können Sie PIDs mit dem folgenden Befehl ihren jeweiligen Systemd-Einheiten zuordnen:

$ ps -e -o pid,unit,cmd

Schlussfolgerung

pstree (oder verwenden Sie ps -axjf ) und pgrep sind zusätzliche Befehle, die helfen können, Informationen über den laufenden Prozess zu erhalten.

Sie können ps als Echtzeitmonitor mit dem Befehl watch verwenden, sagen wir, wir möchten Prozesse nach CPU filtern und der Bericht zur Speichernutzung wird alle 1 Sekunde aktualisiert.

$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu’

In diesem Tutorial haben wir viele Möglichkeiten kennengelernt, den Befehl ps unter Linux zu verwenden. Um alle Optionen zu erkunden, lesen Sie bitte die ps Manpage. Danke fürs Lesen und bitte hinterlassen Sie Ihren Vorschlag im Kommentarbereich unten.


Linux
  1. wc Linux-Befehl mit Beispielen

  2. Linux-Sortierungsbefehl mit Beispielen

  3. Linux Tee-Befehl mit Beispielen

  4. Linux-Kopfbefehl mit Beispielen

  5. JQ-Befehl in Linux mit Beispielen

Linux-Uhrbefehl mit Beispielen

Wartebefehl in Linux mit Beispielen

Linux-Exportbefehl mit Beispielen

Neustartbefehl unter Linux mit Beispielen

Linux-PS-Befehl mit Beispielen

Linux-IP-Befehl mit Beispielen