GNU/Linux >> Tutoriels Linux >  >> Linux

Comment obtenir uniquement tous les identifiants de processus en cours d'exécution ?

Utiliser le formatage de sortie ps :

ps -A -o pid

Le formatage de sortie de la commande est la meilleure option. L'option o contrôle le formatage de la sortie. J'ai énuméré certains des arguments ci-dessous, voir 'man ps' pour le reste (pour en utiliser plusieurs, ce serait -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 ou Cut serait préférable pour obtenir des colonnes :
Généralement, vous ne voudriez pas d'expression régulière pour sélectionner la première colonne, vous voudriez la diriger pour couper ou awk pour couper la première colonne comme :

ps ax | awk '{print $1}'

Regex est une option, sinon la meilleure :
Si vous deviez utiliser regex, cela pourrait ressembler à :

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

$1 imprime uniquement ce qui correspond entre parenthèses. ^ ancre le au début de la ligne. Espace astérisque signifie autoriser les caractères d'espacement facultatifs avant le nombre. [0-9]+ signifie un ou plusieurs chiffres. Mais je ne recommanderais pas regex pour cette tâche particulière, voyez pourquoi ? :-)


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

Utilisez le -o basculer pour avoir une sortie au format client

ps -o pid

La mauvaise façon d'utiliser sed, comme vous l'avez explicitement demandé, peut être

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

Linux
  1. Comment afficher la sortie d'un processus en cours d'exécution dans une autre session Bash ?

  2. Linux - Comment obtenir l'heure de l'horloge murale d'un processus en cours d'exécution ?

  3. Comment redémarrer (ou réinitialiser) un processus en cours d'exécution sous Linux ?

  4. Comment trouver tous les processus enfants ?

  5. Comment obtenir la sortie de gdb.execute dans PythonGDB (GDB 7.1) ?

Comment répertorier les processus en cours d'exécution sous Linux

Comment tuer le processus Linux en cours d'exécution sur un port particulier

tcpdump :comment obtenir une sortie grepable ?

Comment faire fonctionner tous les processus sur chaque cœur de processeur dans Ubuntu ?

Comment puis-je obtenir uniquement le PID, sans aucune information supplémentaire, d'un processus exécuté sur le port 3000 ?

Comment obtenir le pid du processus qui vient de démarrer