Qu'est-ce que la commande ps sous Linux ?
La commande ps sous Linux est utilisée pour afficher les processus en cours d'exécution sur le système. Vous pouvez obtenir des informations telles que l'ID de processus (PID) pour les processus que vous ou tout autre utilisateur exécutez sur le même système Linux.
La commande ps est un outil complet en soi et dispose de plus de 80 options de commande. Vous pouvez comprendre sa force et sa complexité. C'est pourquoi je vais vous montrer quelques-uns des exemples les plus courants et les plus utiles de la commande ps sous Linux.
Utilisation essentielle de la commande ps sous Linux
![](https://m.unixlinux.online/article/uploadfiles/202205/2022050918450409.png)
Si vous utilisez la commande ps sans aucune option sous Linux, elle affichera les processus en cours d'exécution dans le shell actuel :
ps
C'est la sortie. J'ai envoyé la commande Gedit en arrière-plan, c'est pourquoi elle affiche trois processus, sinon vous ne verrez normalement que ps et bash.
PID TTY TIME CMD
503 pts/0 00:00:00 gedit
2053 pts/0 00:00:00 ps
31585 pts/0 00:00:00 bash
Ici :
- PID est l'ID de processus unique du processus
- TTY est le type d'utilisateur du terminal auquel l'utilisateur est connecté. pts signifie pseudo terminal
- TIME vous indique la durée d'exécution du processus
- CMD est la commande que vous exécutez pour lancer le processus
Maintenant, cela ne fournit pas vraiment d'informations réelles et utiles. Voyons quelques meilleurs exemples de la commande ps :
1. Voir tous vos processus en cours
Si vous voulez voir tous les processus exécutés par vous, vous pouvez utiliser la commande ps avec l'option x comme ceci :
ps -x
L'option x affichera tous les processus même s'ils ne sont pas associés au tty actuel (type de terminal) ou s'ils n'ont pas de terminal de contrôle (comme les démons).
L'option – avant x est facultative mais la convention générale de Linux est d'utiliser – avant les options donc je vous conseille de continuer à la suivre. Cela ne vous fera pas de mal.
Voici à quoi ressemble la sortie. J'ai tronqué la sortie car elle comportait des centaines de lignes :
PID TTY STAT TIME COMMAND
503 pts/0 Sl 0:00 gedit
2245 ? S 0:00 /usr/bin/ssh-agent -D -a /run/user/1000/keyring/.ssh
3039 ? Ss 0:00 /lib/systemd/systemd --user
3040 ? S 0:00 (sd-pam)
3054 ? SLl 0:01 /usr/bin/gnome-keyring-daemon --daemonize --login
3059 tty2 Ssl+ 0:00 /usr/lib/gdm3/gdm-x-session --run-script env
Le STAT dans la sortie ci-dessus signifie Process State Codes. Vous pouvez trouver un tableau détaillé dans la page de manuel de la commande ps.
Mais vous verrez rarement la commande ps utilisée uniquement avec l'option x. Il est généralement accompagné de l'option u de cette manière :
ps -ux
Avec l'option u, vous aurez des informations détaillées sur chaque processus :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
abhishek 503 0.0 0.4 681580 37516 pts/0 Sl 18:09 0:00 gedit
abhishek 2245 0.0 0.0 11300 1496 ? S 18:37 0:00 /usr/bin/ssh-agent -D -a /run/user/1000/keyring/.ssh
abhishek 3039 0.0 0.0 77344 3508 ? Ss 10:37 0:00 /lib/systemd/systemd --user
abhishek 3040 0.0 0.0 114632 360 ? S 10:37 0:00 (sd-pam)
abhishek 3054 0.0 0.1 517104 11512 ? SLl 10:37 0:01 /usr/bin/gnome-keyring-daemon --daemonize --login
Comme vous pouvez le voir, vous obtenez maintenant le nom d'utilisateur et la consommation CPU et l'utilisation de la mémoire de chaque processus. RSS indique la quantité de mémoire dont dispose actuellement le processus dans la RAM, tandis que VSZ indique la quantité totale de mémoire virtuelle dont dispose le processus.
2. Voir tous les processus en cours d'exécution avec la commande ps aux
Vous verrez probablement ps -aux
ou ps aux
tout le temps dans les tutoriels et documentations Linux.
Avec l'option -a ajoutée, vous pouvez voir les processus en cours d'exécution par tous les utilisateurs sur le système Linux.
ps -aux
La sortie de la commande est la même que ps -ux mais maintenant vous avez également des processus d'autres utilisateurs. Grâce à l'option -u, vous pouvez identifier quel processus appartient à quel utilisateur.
![](https://m.unixlinux.online/article/uploadfiles/202205/2022050918450424.png)
3. Voir tous les processus en cours d'exécution avec la commande ps -ef sous Linux
Outre ps -aux, vous pouvez également répertorier tous les processus en cours d'exécution avec la commande -e. La pratique courante consiste à la combiner avec l'option f pour obtenir la liste complète des commandes utilisées pour exécuter les processus.
ps -ef
Notez que - avant e est important, sinon le résultat sera différent. Je vous l'ai dit, ps est une commande compliquée et compliquée.
Vous pouvez également combiner l'option H pour voir tous les processus dans une vue filetée avec les processus enfants sous leurs parents :
ps -efH
4. Voir tous les processus en cours d'exécution par un certain utilisateur
Pour obtenir des informations sur tous les processus exécutés par un certain utilisateur, vous pouvez utiliser l'option -U avec le nom d'utilisateur :
ps -U user_name
Par exemple, je peux voir tous les processus exécutés par l'utilisateur root comme ceci :
ps -U root
PID TTY TIME CMD
1 ? 00:00:41 systemd
2 ? 00:00:00 kthreadd
3 ? 00:00:00 rcu_gp
4 ? 00:00:00 rcu_par_gp
8 ? 00:00:00 mm_percpu_wq
9 ? 00:00:03 ksoftirqd/0
10 ? 00:01:22 rcu_sched
5. Voir tous les processus exécutés par un groupe
Vous pouvez également classer les processus en cours d'exécution par groupe plutôt que par utilisateur en fournissant le nom ou l'identifiant du groupe :
ps -G group_name_or_id
Vous pouvez combiner avec l'option f pour obtenir la liste complète.
6. Obtenir toutes les occurrences et le PID d'un programme
L'une des utilisations essentielles de la commande ps est d'obtenir l'ID de processus (PID) d'un programme en cours d'exécution. Normalement, lorsque vous cherchez à tuer un programme qui se comporte mal, vous recherchez toutes les occurrences du programme, obtenez leurs PID et utilisez la commande kill pour mettre fin au processus.
ps -C program__name
Par exemple, si je dois trouver toutes les instances en cours d'exécution du gestionnaire de packages apt :
ps -C apt
PID TTY TIME CMD
11425 pts/1 00:00:00 apt
Vous pouvez également utiliser la commande grep pour obtenir un résultat similaire.
ps aux | grep program_name
7. Obtenir des informations de processus sur un PID
Très bien! Vous avez un PID mais vous ne savez pas à quel processus il appartient. Vous pouvez utiliser la commande ps pour trouver les informations de processus à partir de son PID de cette manière :
ps -pN
Vous pouvez utiliser plusieurs PID en les séparant par une virgule :
ps -pN1,N2,N3
Quoi d'autre ?
Comme je l'ai dit plus tôt, ps est une commande compliquée et étendue. Ce sont quelques-uns des exemples de commandes ps les plus courants dont vous aurez besoin la plupart du temps. Si vous en voulez plus, vous pouvez toujours vous référer à sa page de manuel.
Si vous avez un autre exemple utile de commande ps que vous utilisez régulièrement, pourquoi ne pas le partager avec nous dans la section des commentaires ?