Utilisez le -o
drapeau.
Pour répertorier uniquement vos propres processus
ps -o command
Pour répertorier tous les processus système
ps -e -o command
Ce n'est pas la seule façon de lister les commandes, elles peuvent être imprimées avec des drapeaux de ligne de commande, ou en tant qu'exécutables uniquement (c'est ce que fait l' command
option).
De mon commentaire ci-dessous la réponse:
command, args et cmd donnent tous la commande complète. En fait, la commande et la cmd des états de page de manuel sont des alias d'arg, avec les indicateurs - inclus. La comm ne donne que le nom de l'exacutable. Les alias qui sont ucmd et ucomm. J'ai mal lu les options AIX, celles-ci peuvent en fait être spécifiées au format printf-like,% a pour args,% c pour comm
Reportez-vous à man ps
pour plus d'informations sur l'utilisation et les options de format disponibles
L'approche programmatique serait un peu redondante, car elle ps
nous fournit déjà les options de formatage, mais cela peut être fait avec awk
, ce qui est très utile lorsqu'il s'agit de sortie en colonnes.
ps aux | awk '{ for(i=1;i<=NF;i++) {if ( i >= 11 ) printf $i" "}; printf "\n" }'
Notez cependant que ce code se casse si le nom d'utilisateur contient des espaces, par exemple john doe
. Cela peut être modifié en ajoutant une gsub
fonction qui éliminera votre nom d'utilisateur de la ps
liste. Cependant, s'il y a plusieurs utilisateurs connectés au système, il peut être difficile d'effacer tous les noms d'utilisateur de la sortie. Ainsi, vous pouvez voir que le -o
drapeau est beaucoup plus préféré.
Remarque, il sudo
n'est pas nécessaire de répertorier tous les processus avecps
ps -eo command
&ps -eo comm
? La seule différence que j'ai trouvé danscommand
la sortie en tant que telle était:[kthreadd]
alors que danscomm
la sortie était comme ceci:kthreadd
. Est-ce que cela signifie quelque chose?comm
s'agit du format AIX, alors quecommand
c'est le format standard de style GNU. AIX est un autre système de type * NIX, de sorte que cette option peut être utilisée pour la compatibilité. Sinon, aucune différencediff <(ps -eo comm) <(ps -eo command)
et il semble y avoir un hochet là-bas, pouvez-vous clarifier?awk
solution se casse si un nom d'utilisateur contient des espaces ( ici ); peut-être aussi justeps aux | awk '{ for(i=11;i<=NF;i++) {printf $i" "}; printf "\n" }'
?command
,args
etcmd
tous donnent le plein commandement. En fait, la page de manuel indiquecommand
etcmd
sont des alias pourargs
, avec les-
indicateurs inclus. Lecomm
donne le nom de l'exacutable seulement. Les alias qui sontucmd
etucomm
. J'ai mal lu les options AIX, celles-ci peuvent en fait être spécifiées avec un format semblable à printf,% a pour args,% c pour commUne manière plus générique. Nous déterminons la colonne de la commande. De cette façon, peu importe pour quels commutateurs sont utilisés
ps
.Exemple de sortie
Et de quoi s'agit-il
pstree
?Exemple de sortie
la source
J'ai trouvé un moyen timide pour y parvenir à partir d' ici
sudo ps aux | rev | cut -d ' ' -f 1 | rev
rev
inverse la sortie deps
puis couper peut vous aider à délimiter le premier champ (qui est le dernier!) puis à l'inverser à nouveau ...travaillé pour moi.
la source
ps aux
mêmes seront répertoriés commeaux
.sudo
n'est pas nécessaireps
et la commande recadre un grand nombre de commandes, donc ce n'est pas très précis, si vous souhaitez travailler avec des colonnes, utilisezawk
-le beaucoup mieux pour cette tâche. En fait, le commandement exact seraitps aux | awk '{ for(i=1;i<=NF;i++) {if ( i >= 11 ) printf $i" "}; printf "\n" }'
awk
devrait le faire.sudo ps
et je pensais que ceawk
serait trop compliqué pour cette tâche et je suis sorti aveccut
. Quoi qu'il en soit, ne devriez-vous pas mettre à jour votre réponse avec ce code afin que le PO puisse l'accepter?ps
ce n'est pas aveuglément analysable. Je pense que la seule méthode sûre ici estps -e -o
.