Réponses:
pgrepLes options de sortie de sont assez limitées. Vous devrez certainement le renvoyer pspour diffuser les informations importantes. Vous pouvez automatiser cela en utilisant une fonction bash dans votre ~/.bashrc.
function ppgrep() { pgrep "$@" | xargs --no-run-if-empty ps fp; }
Appelez ensuite la commande avec.
ppgrep <pattern>
psfaut un trait d'union pour les drapeaux:function ppgrep() { pgrep "$@" | xargs ps -fp 2> /dev/null; }
-rqui n'exécutera la commande que si elle a reçu une liste.
ps fp $(pgrep -d, "$@")
Combinez pgrepavec l' psutilisation xargs!
pgrep <your pgrep-criteria> | xargs ps <your ps options> -p
Par exemple, essayez
pgrep -u user | xargs ps -f -p
pour obtenir une liste complète des processus user.
C'est bien que vous gardiez la première ligne avec les noms des colonnes. grepsupprime toujours les noms de colonne.
-u= correspond uniquement aux processus dont l'ID utilisateur effectif est répertorié (voir pgrepréférence linux.die.net/man/1/pgrep ) -f= liste complète, -p= sélectionner par PID (voir psréférence - man7.org/linux/man -pages / man1 / ps.1.html )
Ce qui suit ne vous donne que PID + ligne de commande complète. Pour "toutes les infos ps", voir les autres réponses ...
La plupart des linux utilisent procps-ng . Depuis 3.3.4 (publié en 2012), pgrep -a( --list-full) affiche la ligne de commande complète.
Remarque: Par défaut, pgrep ne fait correspondre que le modèle que vous donnez avec le nom de l'exécutable. Si vous souhaitez faire correspondre la ligne de commande complète (comme le fait le ps de grepping), ajoutez l' option -f( --full).
Dans les anciennes versions (y compris le projet procps d' origine ), l' -loption montrait des informations mais son comportement variait:
pgrep -fl fait correspondre le modèle avec la ligne de commande complète et a montré la ligne de commande complète.pgrep -lseul ne correspondait qu'au nom de l'exécutable et ne montrait que le nom de l'exécutable. Vous ne savez pas quel code * BSD utilise, mais leur page de manuel documente l'ancien -flcomportement.
Malheureusement, vous ne pouvez même pas l'utiliser de manière -flportable - dans le récent procps-ng, -f( --list-name) affiche toujours uniquement le nom de l'exécutable.
Pour la version GNU de pgrepla -i(insensibilité à la casse) n'est pas prise en charge, et une sortie longue + floue est obtenue avec -af.
$ pgrep -af apache
OUTPUT:
1748 /usr/sbin/apache2 -k start
-a, --list-full
List the full command line as well as the process ID. (pgrep only.)
-f, --full
The pattern is normally only matched against the process name.
When -f is set, the full command line is used.
Sur OSX (et par déduction, sur BSD) -l( sortie longue ) en combinaison avec -f( correspondance avec les listes d'arguments complètes ) affichera la commande complète ( -iajoute une insensibilité à la casse):
$ pgrep -fil ssh
OUTPUT:
33770 ssh: abc@192.168.0.123-22 [mux] t
La page de manuel :
-l Long output. For pgrep, print the
process name in addition to the
process ID for each matching
process. If used in conjunction
with -f, print the process ID and
the full argument list for each
matching process. For pkill, dis-
play the kill command used for
each process killed.
Utilisez l'option -v pour grep - elle renvoie tout MAIS le motif demandé.
ps -ef | grep <process> | grep -v grep
pgrep -u user | xargs ps -f -p
Je ne pense pas qu'il y en ait, la plupart des informations que vous pouvez obtenir sont le nom et l'identifiant du processus en utilisant l'option -l pour pgrep.
ps prend en charge toutes sortes d'options de formatage, donc je voudrais simplement créer un alias pour ce que vous voulez enregistrer. Un moyen simple d'exclure le processus grep de la sortie nous pour inclure un canal supplémentaire grep -v greppour exclure tout processus grep.
Afin d'éliminer le grepprocessus, vous pouvez utiliser des crochets dans le cadre de votre modèle:
ps -ef | grep '[t]ty'
Vous pouvez le faire avec pset pgrep:
ps -fp $(pgrep -d, tty)
Cela vous aidera, je suppose:
ps auxww
function ppgrep() { pgrep "$@" | xargs ps fp 2> /dev/null; }Sinon, si aucun processus ne correspond à votre recherche, ilpsvide toute une mégilla d'utilisation.