GNU/Linux >> Linux Esercitazione >  >> Linux

Esempi essenziali del comando ps in Linux

Cos'è il comando ps in Linux?

Il comando ps in Linux viene utilizzato per visualizzare i processi in esecuzione sul sistema. Puoi ottenere informazioni come l'ID processo (PID) per i processi che tu o qualsiasi altro utente state eseguendo sullo stesso sistema Linux.

Il comando ps è di per sé uno strumento completo e ha oltre 80 opzioni di comando. Puoi capirne la forza e la complessità. Questo è il motivo per cui ti mostrerò alcuni degli esempi più comuni e più utili del comando ps in Linux.

Utilizzo essenziale del comando ps in Linux

Se usi il comando ps senza alcuna opzione in Linux, mostrerà i processi in esecuzione nella shell corrente:

ps

Questa è l'uscita. Ho inviato il comando Gedit in background, ecco perché mostra tre processi altrimenti normalmente vedrai solo ps e 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

Qui:

  • PID è l'ID processo univoco del processo
  • TTY è il tipo di terminale a cui l'utente ha effettuato l'accesso. pts significa pseudo terminale
  • TIME ti indica da quanto tempo è stato eseguito il processo
  • CMD è il comando che esegui per avviare il processo

Ora questo non fornisce alcuna informazione reale e utile. Vediamo alcuni esempi migliori del comando ps:

1. Guarda tutto il tuo processo in esecuzione

Se vuoi vedere tutti i processi eseguiti da te, puoi usare il comando ps con l'opzione x in questo modo:

ps -x

L'opzione x mostrerà tutti i processi anche se non sono associati al tty corrente (tipo di terminale) o se non hanno un terminale di controllo (come i demoni).

L'opzione – before x è facoltativa ma la convenzione generale di Linux prevede l'uso di – before options quindi ti consiglio di continuare a seguirla. Non ti farà male.

Ecco come appare l'output. Ho troncato l'output perché aveva centinaia di righe:

  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 

Lo STAT nell'output sopra indica i codici di stato del processo. Puoi trovare una tabella dettagliata nella pagina man del comando ps.

Ma raramente vedrai il comando ps usato solo con l'opzione x. Di solito è accompagnato dall'opzione u in questo modo:

ps -ux

Con l'opzione u, avrai informazioni dettagliate su ogni processo:

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

Come puoi vedere, ora ottieni il nome utente e il consumo della CPU e l'utilizzo della memoria di ciascun processo. RSS mostra quanta memoria ha attualmente il processo nella RAM mentre VSZ è quanta memoria virtuale ha il processo in totale.

2. Visualizza tutti i processi in esecuzione con il comando ps aux

Probabilmente vedrai ps -aux o ps aux tutto il tempo in tutorial e documentazioni Linux.

Con l'opzione -a aggiunta, puoi vedere i processi in esecuzione di tutti gli utenti sul sistema Linux.

ps -aux

L'output del comando è lo stesso di ps -ux ma ora hai anche processi di altri utenti. Grazie all'opzione -u, puoi identificare quale processo appartiene a quale utente.

3. Visualizza tutti i processi in esecuzione con il comando ps -ef in Linux

Oltre a ps -aux, puoi anche elencare tutti i processi in esecuzione con il comando -e. La pratica comune è combinarla con l'opzione f per ottenere l'elenco completo dei comandi utilizzati per eseguire i processi.

ps -ef

Nota che – prima di e è importante altrimenti mostrerà risultati diversi. Te l'ho detto, ps è un comando incasinato e complicato.

Puoi anche combinare l'opzione H per vedere tutti i processi in una vista a thread con i processi figlio sotto i loro genitori:

ps -efH

4. Visualizza tutti i processi in esecuzione di un determinato utente

Per ottenere le informazioni su tutti i processi eseguiti da un determinato utente, puoi utilizzare l'opzione -U con il nome utente:

ps -U user_name

Ad esempio, posso vedere tutti i processi eseguiti dall'utente root in questo modo:

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. Visualizza tutti i processi eseguiti da un gruppo

Puoi anche classificare i processi in esecuzione per gruppo anziché per utente fornendo il nome del gruppo o l'ID gruppo:

ps -G group_name_or_id

Puoi combinare con l'opzione f per ottenere l'elenco completo.

6. Ottieni tutte le occorrenze e il PID di un programma

Uno degli usi essenziali del comando ps è ottenere l'ID di processo (PID) di un programma in esecuzione. Normalmente quando stai cercando di uccidere un programma che si comporta in modo anomalo, cerchi tutte le occorrenze del programma, ottieni i loro PID e usi il comando kill per terminare il processo.

ps -C program__name

Ad esempio, se devo trovare tutte le istanze in esecuzione del gestore di pacchetti apt:

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

Puoi anche usare il comando grep per ottenere un risultato simile.

ps aux | grep program_name

7. Ottieni informazioni di processo su un PID

Bene! Hai un PID ma non sai a quale processo appartiene. È possibile utilizzare il comando ps per trovare le informazioni sul processo dal suo PID in questo modo:

ps -pN

Puoi utilizzare più di un PID separandoli con una virgola:

ps -pN1,N2,N3

Cos'altro?

Come ho detto prima, ps è un comando complicato ed esteso. Questi erano alcuni degli esempi di comandi ps più comuni di cui avrai bisogno la maggior parte del tempo. Se vuoi di più, puoi sempre fare riferimento alla sua pagina man.

Se hai qualche altro esempio utile di comando ps che usi regolarmente, perché non condividerlo con il resto di noi nella sezione commenti?


Linux
  1. sa Esempi di comandi in Linux

  2. w Esempi di comandi in Linux

  3. ac Esempi di comandi in Linux

  4. Esempi di comandi df in Linux

  5. du Esempi di comandi in Linux

Comando wc Linux con esempi

10 esempi di comandi iftop in Linux

Cos'è il comando Linux Watch + Esempi

I 50 esempi pratici del comando SED in Linux

10 esempi utili del comando di ordinamento in Linux

Esempi di comandi id in Linux