Comment voir combien d'utilisateurs sous Linux

La commande who vous montre chaque session de connexion ouverte sur la machine:

Vous pouvez également utiliser la commande w pour obtenir une vue plus détaillée de ce que fait chaque session de connexion:

Nous pouvons compter les sessions ouvertes en comptant les lignes dans le résultat de la commande who ou w si nous utilisons l'option -h (pour supprimer les lignes d'en-tête, que nous ne voulons pas compter). Pour ce faire, nous dirigerons la sortie à l'aide de la barre verticale (" | ") pour créer un pipeline de commandes, en envoyant la sortie d'un programme au programme suivant du pipeline. Ici, nous comptons les lignes de qui et de w -h en les dirigeant vers wc -l, générant ainsi un nombre de sessions actives.

Comptage d'utilisateurs uniques

La méthode ci-dessus compte les sessions de connexion, mais si un utilisateur a plus d'une session de connexion ouverte, elles seront comptées plus d'une fois. Pour compter les utilisateurs uniques, nous devons faire preuve de plus de créativité. Nous pouvons utiliser la commande cut pour supprimer toutes les informations sauf le nom d'utilisateur:

La commande ci-dessus dit: "récupérez le résultat de qui et affichez uniquement le premier champ d'informations délimité par un espace". Il nous donne une liste des noms d'utilisateur, mais nous devons encore filtrer les noms répétés.

Pour ce faire, nous pouvons ajouter la commande sort -u . Ceci trie les noms par ordre alphabétique et filtre toutes les lignes qui ne sont pas uniques:

Et enfin, pour compter ces utilisateurs uniques, nous ajoutons wc -l à la fin de notre pipeline de commandes:

Utiliser ps pour compter tout utilisateur exécutant un processus

Une autre technique utile consiste à utiliser la commande ps pour créer une liste de tous les utilisateurs du système possédant un processus en cours d'exécution. Pour ce faire, nous pouvons utiliser ps avec les options -e, -a, -h et -o user . Ils peuvent être combinés comme suit:

Cette commande indique "Afficher les informations relatives à un processus appartenant à un utilisateur, ne pas afficher les lecteurs, et n'imprimer que le nom de l' utilisateur ".

Notez que, outre les utilisateurs précédemment répertoriés par qui, nous voyons également la racine répertoriée ici. La commande who affiche uniquement les utilisateurs connectés à une session de terminal, mais ps répertorie tous les utilisateurs possédant un processus en cours d'exécution, même s'ils n'ont pas de terminal ouvert. La commande ps inclut root et peut inclure d'autres utilisateurs spécifiques au système.

Comme auparavant, nous pouvons trier notre sortie et répertorier uniquement les noms uniques:

... et produire le total souhaité: