Cet article couvre les bases du Linux pgrep
commande.
pgrep
est un utilitaire de ligne de commande qui vous permet de trouver les ID de processus d'un programme en cours d'exécution en fonction de critères donnés. Il peut s'agir d'un nom de processus complet ou partiel, d'un utilisateur exécutant le processus ou d'autres attributs.
Le pgrep
la commande fait partie du procps
(ou procps-ng
), qui est préinstallé sur presque toutes les distributions Linux.
Comment utiliser le pgrep
Commande #
La syntaxe du pgrep
commande est la suivante :
pgrep [OPTIONS] <PATTERN>
Le <PATTERN>
correspondant est spécifié à l'aide d'expressions régulières étendues.
Lorsqu'il est appelé sans aucune option, pgrep
affiche les PID de tous les programmes en cours d'exécution qui correspondent au nom donné. Par exemple, pour trouver le PID du serveur SSH, vous exécuterez :
pgrep ssh
S'il y a des processus en cours d'exécution avec des noms correspondant à "ssh", leurs PID seront affichés à l'écran. Si aucune correspondance n'est trouvée, la sortie est vide.
1039
2257
6850
31279
La commande renvoie 0
lorsqu'au moins un processus en cours d'exécution correspond au nom demandé. Sinon, le code de sortie est 1
. Cela peut être utile lors de l'écriture de scripts shell.
Si vous souhaitez envoyer des signaux aux processus correspondants, utilisez pkill
. Cette commande est un wrapper autour du pkill
, et utilise les mêmes options et correspondance de modèle.
pgrep
imprime chaque ID de processus correspondant sur une nouvelle ligne. Le -d
L'option vous permet de spécifier un délimiteur différent. Par exemple, si vous souhaitez utiliser un espace comme délimiteur, saisissez :
pgrep ssh -d' '
1039 2257 6850 31279
Le -l
l'option indique pgrep
pour afficher le nom du processus avec son ID :
pgrep ssh -l
pgrep
utilise des expressions régulières pour effectuer l'opération de recherche et listera tous les processus qui contiennent "ssh" dans leurs noms :
1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent
Si vous souhaitez faire correspondre uniquement les processus dont les noms correspondent exactement au modèle de recherche, vous utiliserez :
pgrep '^ssh$' -l
6850 ssh
Le caret (^
) correspond au début de la chaîne, et le dollar $
à la fin.
Par défaut, pgrep
correspond uniquement au nom du processus. Lorsque -f
est utilisée, la commande correspond aux listes complètes d'arguments.
pgrep -f ssh
Utilisez le -u
option pour indiquer à pgrep
pour afficher les processus en cours d'exécution par un utilisateur donné :
pgrep -u root
Pour spécifier plusieurs utilisateurs, séparez leurs noms par des virgules :
pgrep -u root,mark
Vous pouvez également combiner des options et des modèles de recherche. Par exemple, pour imprimer tous les processus et leurs noms qui s'exécutent sous l'utilisateur "mark" et contiennent "gnome" dans leurs noms, vous devez taper :
pgrep -l -u mark gnome
Pour afficher uniquement les processus démarrés le moins récemment (le plus ancien) ou le plus récemment (le plus récent), utilisez le -n
(pour les plus récents) ou le -o
(pour les plus anciens).
Par exemple, pour trouver le processus le plus récent lancé par l'utilisateur « marque », vous devez saisir :
pgrep -lnu mark
Comme vous pouvez le voir dans l'exemple ci-dessus, vous pouvez également combiner les options sans espace entre elles et avec un seul tiret.
Pour inverser la correspondance, c'est-à-dire pour afficher uniquement les processus qui ne correspondent pas aux critères donnés, utilisez le -v
option. La commande suivante imprimera tous les processus qui ne sont pas exécutés par l'utilisateur « mark » :
pgrep -v -u mark
Le -c
l'option indique pgrep
pour imprimer uniquement le nombre de processus correspondants. Par exemple, pour trouver les processus qui s'exécutent en tant qu'utilisateur "mark", entrez :
pgrep -c -u mark
Conclusion #
Le pgrep
La commande est utilisée pour connaître les PID d'un programme en cours d'exécution en fonction de différents critères.
Pour plus d'informations sur pgrep
commande, visitez la page de manuel pgrep ou tapez man pgrep
dans votre terminal.
Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.