Articles

la commande ps aux et la commande ps expliquées

Ce tutoriel explique comment utiliser la commande ps sous Linux. Il fournit également plus de 10 exemples pratiques de la commande ps. Apprenez à lire la sortie de la commande ps aux en détail.

Une brève introduction de la commande ps

La commande ps (process status) est l’une des commandes les plus fréquemment utilisées sous Linux. Habituellement, il est utilisé pour obtenir des informations plus détaillées sur un processus spécifique ou tous les processus. Par exemple, il est utilisé pour savoir si un processus particulier est en cours d’exécution ou non, qui exécute quel processus dans le système, quel processus utilise une mémoire ou un processeur plus élevé, combien de temps un processus s’exécute, etc.

Configuration du LABORATOIRE

Pour la pratique, démarrez certaines applications et continuez à les exécuter. Changez de compte utilisateur et répétez le même processus.

configuration de laboratoire pour la pratique de la commande ps

Supposons maintenant que vous soyez un administrateur système et que vous souhaitiez savoir ce qui se passe dans le système.Dans ce cas, vous pouvez utiliser la commande ps pour obtenir les informations requises.

À l’aide de la commande ps

Ouvrez le terminal et exécutez la commande ps

commande ps sans option ni argument

Sans option ni argument, la commande ps affiche uniquement le processus s’exécutant sous le compte utilisateur connecté à partir du terminal actuel.

Vous pouvez vous demander pourquoi la commande ps affiche deux processus alors que nous n’avons exécuté aucun processus à partir de ce terminal jusqu’à présent.

Eh bien first le premier processus montre le processus sous lequel ce terminal est ouvert. Ce processus reste ouvert, jusqu’à ce que le terminal soit ouvert.

Le second processus affiche la dernière commande exécutée dans ce terminal.

Spécification des options avec la commande ps

La commande ps accepte les options dans trois styles.

Style UNIX BSD : – Dans ce style, les options sont fournies sans tiret de début (comme « aux »).

AT&T Style Unix : – Dans ce style, les options sont fournies avec un tiret de tête (comme « -aux »).

Style GNU Linux : – Dans ce style, les options sont fournies avec des tirets doubles (tels que « sortsort »).

Bien que la commande PS accepte les options dans le style de mixage, vous devez toujours utiliser un seul style pour spécifier les options.

Exemples de base de la commande ps

Pour imprimer tous les processus en cours d’exécution dans le système, utilisez l’une des commandes suivantes.

$ps –A$ps -e

commandes ps-A et ps-e

Les options A et e fournissent un aperçu résumé de l’exécution processes.To imprimez la vue d’ensemble détaillée, utilisez les options f (plein format) et F (plein format supplémentaire) avec ces options.

commandes ps-ef et ps-af

Pour afficher la même sortie dans le style Unix BSD, utilisez les options « aux ».

commande ps aux

La commande « ps aux » est la commande la plus fréquemment utilisée par les administrateurs Linux. Avant de passer à l’exemple suivant, comprenons en détail les options utilisées dans cette commande.

options de commande ps aux

a: – Cette option imprime les processus en cours d’exécution de tous les utilisateurs.

u: – Cette option affiche la colonne utilisateur ou propriétaire en sortie.

x:- Cette option imprime les processus qui n’ont pas été exécutés à partir du terminal.

Collectivement, les options « aux » impriment tout le processus en cours dans le système, quel que soit l’endroit où elles ont été exécutées.

La commande ps aux affiche la description colonne par colonne
Colonne Description
UTILISATEUR Le compte utilisateur sous lequel ce processus s’exécute
PID ID de processus de ce processus
%CPU Temps CPU utilisé par ce processus (en pourcentage).
%MEM Mémoire physique utilisée par ce processus (en pourcentage).
VSZ Mémoire virtuelle utilisée par ce processus (en octets).
RSS Taille de l’ensemble résident, la mémoire physique non échangeable utilisée par ce processus (en Ko)
ATS Terminal à partir duquel ce processus est démarré. Point d’interrogation (?) signe indique que ce processus n’est pas démarré à partir d’un terminal.
STAT État du processus. Expliqué dans le tableau suivant.
START Heure et date de début de ce processus
TIME Temps CPU total utilisé par ce processus
COMMANDE La commande avec tous ses arguments qui a démarré ce processus
code de statistiques ps aux avec description

td>

s

D sommeil non interruptible (généralement IO)
R en cours d’exécution ou exécutable (sur la file d’attente d’exécution)
S sommeil interruptible (en attente d’un événement à la liste complète)
T arrêté par le signal de contrôle du travail
t arrêté par le débogueur pendant le traçage
w pagination (non valide depuis la version 2.6.xx noyau)
x mort (ne devrait jamais être vu)
Z processus disparu (« zombie »), terminé mais non récolté par son parent
< haute priorité (pas agréable pour les autres utilisateurs)
N faible priorité (agréable pour les autres utilisateurs)
L a des pages verrouillées en mémoire (pour des E/S en temps réel et personnalisées)
est un leader de session
l est multi-thread (en utilisant CLONE_THREAD, comme Les pthreads NPTL font)
+ est dans le groupe de processus au premier plan
Points clés
  • L’utilisation du PROCESSEUR est exprimée en pourcentage du temps passé à fonctionner pendant toute la durée de vie d’un processus.
  • Les champs SIZE et RSS ne comptent pas certaines parties d’un processus, y compris les tables de page, la pile du noyau, struct thread_info et struct task_struct.
  • La taille est la taille virtuelle du processus (code + données + pile).
  • Les processus marqués <défunts > sont des processus morts (appelés « zombies ») qui restent parce que leur parent ne les a pas détruits correctement.
  • Si la longueur du nom d’utilisateur est supérieure à la longueur de la colonne d’affichage, le nom d’utilisateur sera tronqué.

10+exemples pratiques de la commande ps

Pour afficher tous les processus s’exécutant sous le compte utilisateur root, utilisez la commande suivante.

$ps -U root -u root

Dans cette commande : –

– U: – Sélectionnez le processus en fonction de l’identifiant ou du nom d’utilisateur réel.

– u : – Sélectionnez le processus en fonction de l’identifiant ou du nom d’utilisateur effectif.

RUID (ID utilisateur réel) représente le nom de l’utilisateur tandis que EUID (ID utilisateur effectif) décrit l’utilisateur dont les autorisations d’accès aux fichiers sont utilisées par le processus.

commande ps-u-U

Pour afficher tous les processus exécutés par un compte utilisateur spécifique, utilisez la commande suivante.

$ps –U –u 

commande ps afficher tous les processus s'exécutant sous un compte utilisateur unique

Pour afficher tous les processus s’exécutant sous un groupe particulier, utilisez la commande suivante.

$ps –G 

Pour un aperçu détaillé, nous pouvons également combiner l’option -G avec l’option –F.

$ps –FG 

commande ps-fg

Pour afficher tous les processus dans la hiérarchie, nous pouvons utiliser la commande suivante.

$ps –A --forest

ps-Aforestforest

Afficher uniquement une colonne spécifique

Par défaut, la commande ps affiche toutes les colonnes. Si nous ne nous intéressons qu’à des colonnes particulières, nous pouvons limiter la sortie en spécifiant les noms de colonnes requis comme arguments.

Par exemple, pour afficher uniquement les colonnes PID, USER et CMD, nous pouvons utiliser la commande suivante.

$ps –eo pid,user,cmd

affichage ps de la colonne limitée

Trouver le processus qui utilise la mémoire la plus élevée

Par défaut, la commande ps ne trie pas la sortie. En définissant l’ordre de tri sur %MEM, nous pouvons trouver les processus qui consomment des mémoires plus élevées.

Pour définir l’ordre de tri, l’optionsortsort= est utilisée. Nous pouvons également combiner cette option avec d’autres options pour obtenir la sortie plus spécifique.

Par exemple, affichons uniquement les champs spécifiques et ordonnons-les par utilisations de la mémoire.

$ps –eo pid,user,%mem,cmd --sort=-%mem

tri des sorties ps par utilisation de la mémoire

Limitation de la sortie

Par défaut, la commande ps ne limite pas le résultat en sortie.Si nous ne souhaitons connaître que les trois premiers processus qui consomment le plus de mémoire, au lieu d’afficher la sortie de la commande ps dans le terminal, nous pouvons la rediriger vers la commande head.

Par défaut, la commande head affiche les 10 premières lignes de la source fournie.Nous pouvons remplacer ce comportement par défaut en spécifiant les numéros de ligne requis.

Pour afficher uniquement les trois premiers processus, nous pouvons utiliser l’option « -n 4 » avec la commande head.

sortie de limitation ps

Pour 3 résultats, fournissez le chiffre 4 comme argument. Comme dans la sortie de la commande ps, la première ligne est occupée par les titres.

Trouver le processus qui utilise le PROCESSEUR le plus élevé

Tout comme nous avons déterminé les processus consommant le plus de mémoire, nous pouvons également trouver les processus consommant le plus de CPU en triant la sortie en fonction de la colonne CPU.Par exemple, la commande suivante imprime les 3 meilleurs processus classés par utilisation du PROCESSEUR.

$ps –eo pid,user,%cpu,cmd –-sort=-%cpu | head –n 4

tri de sortie ps par utilisations du processeur

Trouver le nombre total de processus exécutés par un utilisateur

Pour calculer le nombre total de processus exécutés par un utilisateur, utilisez la commande suivante

$ps –U –u | wc –l