GNU/Linux >> Znalost Linux >  >> Linux

Základní příklady příkazu ps v Linuxu

Co je příkaz ps v Linuxu?

Příkaz ps v Linuxu se používá k zobrazení informací o běžících procesech v systému. Můžete získat informace jako ID procesu (PID) pro procesy, které vy nebo kterýkoli jiný uživatel běží na stejném systému Linux.

Příkaz ps je sám o sobě rozsáhlým nástrojem a má více než 80 možností příkazů. Můžete pochopit jeho sílu a složitost. To je důvod, proč vám ukážu některé z nejběžnějších a nejužitečnějších příkladů příkazu ps v Linuxu.

Základní použití příkazu ps v Linuxu

Pokud v Linuxu použijete příkaz ps bez jakýchkoli voleb, zobrazí běžící procesy v aktuálním shellu:

ps

Toto je výstup. Odeslal jsem příkaz Gedit na pozadí, proto ukazuje tři procesy, jinak normálně uvidíte jen ps a bash.

  PID TTY          TIME CMD
  503 pts/0    00:00:00 gedit
 2053 pts/0    00:00:00 ps
31585 pts/0    00:00:00 bash

Zde:

  • PID je jedinečné ID procesu procesu
  • TTY je typ uživatele terminálu, ke kterému je přihlášen. pts znamená pseudo terminál
  • ČAS udává, jak dlouho proces běží
  • CMD je příkaz, který spustíte ke spuštění procesu

Nyní to ve skutečnosti neposkytuje žádné skutečné, užitečné informace. Podívejme se na některé lepší příklady příkazu ps:

1. Podívejte se na všechny běžící procesy

Pokud chcete vidět všechny procesy, které spouštíte, můžete použít příkaz ps s možností x takto:

ps -x

Možnost x zobrazí všechny procesy, i když nejsou spojeny s aktuálním tty (typ terminálu) nebo pokud nemají řídicí terminál (jako démoni).

Možnost – před x je volitelná, ale obecnou konvencí Linuxu je používat možnosti – před, takže vám doporučuji, abyste ji nadále dodržovali. Neublíží vám to.

Takto vypadá výstup. Výstup jsem zkrátil, protože měl stovky řádků:

  PID TTY      STAT   TIME COMMAND
  503 pts/0    Sl     0:00 gedit
 2245 ?        S      0:00 /usr/bin/ssh-agent -D -a /run/user/1000/keyring/.ssh
 3039 ?        Ss     0:00 /lib/systemd/systemd --user
 3040 ?        S      0:00 (sd-pam)
 3054 ?        SLl    0:01 /usr/bin/gnome-keyring-daemon --daemonize --login
 3059 tty2     Ssl+   0:00 /usr/lib/gdm3/gdm-x-session --run-script env 

STAT ve výše uvedeném výstupu znamená kódy stavu procesu. Podrobnou tabulku naleznete v manuálové stránce příkazu ps.

Ale zřídka uvidíte příkaz ps použitý pouze s možností x. Obvykle je doprovázen možností u takto:

ps -ux

S možností u budete mít podrobné informace o každém procesu:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
abhishek   503  0.0  0.4 681580 37516 pts/0    Sl   18:09   0:00 gedit
abhishek  2245  0.0  0.0  11300  1496 ?        S    18:37   0:00 /usr/bin/ssh-agent -D -a /run/user/1000/keyring/.ssh
abhishek  3039  0.0  0.0  77344  3508 ?        Ss   10:37   0:00 /lib/systemd/systemd --user
abhishek  3040  0.0  0.0 114632   360 ?        S    10:37   0:00 (sd-pam)
abhishek  3054  0.0  0.1 517104 11512 ?        SLl  10:37   0:01 /usr/bin/gnome-keyring-daemon --daemonize --login

Jak můžete vidět, nyní získáte uživatelské jméno a spotřebu CPU a paměti každého procesu. RSS ukazuje, kolik paměti má proces aktuálně v RAM, zatímco VSZ je kolik virtuální paměti má proces celkem.

2. Podívejte se na všechny běžící procesy pomocí příkazu ps aux

Pravděpodobně uvidíte ps -aux nebo ps aux celou dobu v linuxových návodech a dokumentaci.

S přidanou volbou -a můžete vidět běžící procesy všemi uživateli v systému Linux.

ps -aux

Výstup příkazu je stejný jako ps -ux, ale nyní máte procesy i od jiných uživatelů. Díky volbě -u můžete identifikovat, který proces patří kterému uživateli.

3. Podívejte se na všechny běžící procesy pomocí příkazu ps -ef v Linux

Kromě ps -aux můžete také vypsat všechny běžící procesy pomocí příkazu -e. Běžnou praxí je zkombinovat ji s možností f, abyste získali úplný seznam příkazů používaných ke spouštění procesů.

ps -ef

Všimněte si, že – před e je důležité, jinak to ukáže jiný výsledek. Řekl jsem vám, že ps je zpackaný a komplikovaný příkaz.

Můžete také zkombinovat možnost H, abyste viděli všechny procesy ve vláknovém zobrazení s podřízenými procesy pod jejich rodiči:

ps -efH

4. Zobrazit všechny spuštěné procesy určitého uživatele

Chcete-li získat informace o všech procesech spuštěných určitým uživatelem, můžete použít volbu -U s uživatelským jménem:

ps -U user_name

Například všechny procesy běžící uživatelem root vidím takto:

ps -U root
  PID TTY          TIME CMD
    1 ?        00:00:41 systemd
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 rcu_gp
    4 ?        00:00:00 rcu_par_gp
    8 ?        00:00:00 mm_percpu_wq
    9 ?        00:00:03 ksoftirqd/0
   10 ?        00:01:22 rcu_sched

5. Zobrazit všechny procesy spuštěné skupinou

Spuštěné procesy můžete také kategorizovat podle skupiny namísto uživatele zadáním názvu skupiny nebo ID skupiny:

ps -G group_name_or_id

Můžete kombinovat s možností f, abyste získali úplný seznam.

6. Získejte všechny výskyty a PID programu

Jedním ze základních použití příkazu ps je získat ID procesu (PID) běžícího programu. Normálně, když chcete zabít špatně se chovající program, vyhledáte všechny výskyty programu, získáte jejich PID a použijete příkaz kill k ukončení procesu.

ps -C program__name

Například, pokud musím najít všechny spuštěné instance správce balíčků apt:

ps -C apt
  PID TTY          TIME CMD
11425 pts/1    00:00:00 apt

K získání podobného výsledku můžete také použít příkaz grep.

ps aux | grep program_name

7. Získejte informace o procesu o PID

V pořádku! Máte PID, ale nevíte, ke kterému procesu patří. Pomocí příkazu ps můžete najít informace o procesu z jeho PID tímto způsobem:

ps -pN

Můžete použít více než jeden PID tak, že je oddělíte čárkou:

ps -pN1,N2,N3

Co ještě?

Jak jsem řekl dříve, ps je komplikovaný a rozsáhlý příkaz. Toto byly některé z nejběžnějších příkladů příkazů ps, které budete většinu času potřebovat. Pokud chcete více, vždy se můžete podívat na jeho manuálovou stránku.

Pokud máte nějaký další užitečný příklad příkazu ps, který pravidelně používáte, proč se o něj nepodělit s námi ostatními v sekci komentářů?


Linux
  1. 7 Příklady příkazů Linux df

  2. 8 Příklady příkazů Linux TR

  3. sa Příklady příkazů v Linuxu

  1. Příklady příkazů ac v Linuxu

  2. Příklady příkazů df v Linuxu

  3. du příklady příkazů v Linuxu

  1. Zvládněte příkaz Linux ls

  2. Příkaz mv v Linuxu:7 základních příkladů

  3. Základní příklady příkazu File v Linuxu