GNU/Linux >> Linux Esercitazione >  >> Linux

Come ottenere solo tutti gli ID di processo in esecuzione?

Usa la formattazione dell'output ps:

ps -A -o pid

La formattazione dell'output del comando è l'opzione migliore. L'opzione o controlla la formattazione dell'output. Ho elencato alcuni degli argomenti di seguito, vedi 'man ps' per il resto ( per usare più sarebbe -o pid,cmd,flags ).

KEY   LONG         DESCRIPTION
   c     cmd          simple name of executable
   C     pcpu         cpu utilization
   f     flags        flags as in long format F field
   g     pgrp         process group ID
   G     tpgid        controlling tty process group ID
   j     cutime       cumulative user time
   J     cstime       cumulative system time
   k     utime        user time
   o     session      session ID
   p     pid          process ID

Awk o Cut sarebbe meglio ottenere colonne:
Generalmente non vorresti una regex per selezionare la prima colonna, vorresti reindirizzarla a cut o awk per ritagliare la prima colonna come:

ps ax | awk '{print $1}'

Regex è un'opzione, se non la migliore:
Se dovessi usare regex, potrebbe essere qualcosa del tipo:

ps ax | perl -nle 'print $1 if /^ *([0-9]+)/'

$1 stampa solo ciò che è stato abbinato tra parentesi. ^ ancora all'inizio della riga. L'asterisco spazio significa consentire caratteri spazio facoltativi prima del numero. [0-9]+ indica una o più cifre. Ma non consiglierei regex per questo particolare compito, vedi perché? :-)


ps ax | awk '{ print $1; }'

Usa -o switch per avere un output in formato personalizzato

ps -o pid

Il modo sbagliato di usare sed, come hai chiesto esplicitamente potrebbe essere

ps -ax | sed 's#^\( *[0-9]\+\) .*$#\1#'

Linux
  1. Come modificare il reindirizzamento dell'output di un processo in esecuzione?

  2. Come visualizzare l'output di un processo in esecuzione in un'altra sessione Bash?

  3. Come riavviare (o ripristinare) un processo in esecuzione in Linux?

  4. Come reindirizzare l'output di un processo già in esecuzione

  5. Come ottenere l'ID processo del processo in background?

Come elencare i processi in esecuzione in Linux

Come eliminare l'esecuzione del processo Linux su una porta particolare

come ottenere sha1sum per l'output binario?

Come far funzionare tutti i processi su ciascun core della CPU in Ubuntu?

Come ottengo solo il PID, senza alcuna informazione aggiuntiva, di un processo in esecuzione sulla porta 3000?

Come ottenere il pid del processo appena avviato