Vous pouvez également gérer psun peu mieux la sortie.
ps --width ${n:-$COLUMNS} ${opts} #set ps terminal width
ps -ww ${opts} #no word wrap
ps -o ${only_interesting_output} ${opts} #trim output
Cela indiquera psd'analyser sa sortie selon vos spécifications si nécessaire.
Bien sûr, si vous ne faites pas de retour à la ligne, vous avez le problème de manquer d'informations. Avez-vous vraiment besoin de tout cela pour tous les processus? Ouvrez-le dans un pager si c'est le cas:
ps ww ${opts} | $PAGER
Sinon, spécifiez ce que vous voulez voir:
ps -o args= -p $pid
Alternativement, vous pouvez explicitement informer psde votre terminal --width:
man ps
...
w Large sortie. Utilisez cette option deux fois pour une largeur illimitée.
-w Large sortie. Utilisez cette option deux fois pour une largeur illimitée.
--width n Définissez la largeur de l'écran.
La --widthchose fonctionne exactement selon les spécifications demandées sans avoir à impliquer de filtres supplémentaires ou de processus auxiliaires (ce qui ne fera qu'encombrer -auxencore plus votre sortie). Et $COLUMNScomme indiqué ci-dessus et comme le souligne Stéphane, cela fonctionnera même de manière dynamique.
Il est probablement intéressant de noter, cependant, que je trouve des gens essaient souvent d'ajouter ces types de filtres inutiles afin qu'ils puissent accueillir un |pipepar un autre filtre à la sortie parse qui est aussi très susceptible d'être inutile. Bien sûr, par les gens, je veux surtout dire moi.
L' -oopérande utput que je mentionne ci-dessus vous permet de filtrer les colonnes à psafficher, et lorsque vous ajoutez l' =assignation, vous pouvez même nommer la colonne à votre guise. Je laisse l'affectation vide et lui -premets un processus cible $pidafin que la seule sortie du pstout soit le $pidnom de la commande et son argsà l'invocation. Et -ogratte à peine la surface de la façon dont vous pouvez définir ce psqui sera affiché ou non. C'est la direction que je vous recommanderais de prendre, notamment via:
man ps
...
Pour voir tous les processus du système à l'aide de la syntaxe BSD:
ps ax
ps axu
Pour imprimer un arbre de processus:
ps -ejH
ps axjf
Pour obtenir des informations sur les threads:
ps -eLf
ps axms
Pour obtenir des informations sur la sécurité:
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM
Pour voir chaque processus exécuté en tant que root (ID réel et efficace) au format utilisateur:
ps -U root -u root u
Pour voir chaque processus avec un format défini par l'utilisateur:
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -Ao pid,tt,user,fname,tmout,f,wchan
Imprimez uniquement les ID de processus de syslogd:
ps -C syslogd -o pid=
N'imprimez que le nom du PID 42:
ps -p 42 -o comm=