Hoe kunt u zien hoeveel gebruikers in Linux

De who- opdracht laat zien dat elke inlogsessie op de computer is geopend:

U kunt ook de opdracht w gebruiken om een ​​gedetailleerder overzicht te krijgen van wat elke aanmeldingssessie doet:

We kunnen tellen dat de sessies open zijn door de regels in de uitvoer van de who of w- opdracht te tellen als we de optie -h gebruiken (om de kopregels te onderdrukken, die we niet willen tellen). Om dit te doen, zullen we de uitvoer pijpen met behulp van de verticale balk (" | ") om een ​​commandopijplijn te creëren, waarbij de uitvoer van het ene programma naar het volgende programma in de pijplijn wordt verzonden. Hier tellen we de lijnen van zowel who als w -h door ze door te sturen naar wc -l, waardoor effectief een telling van actieve sessies wordt gegenereerd.

Het tellen van unieke gebruikers

De bovenstaande methode telt inlogsessies, maar als een gebruiker meer dan één login-sessie open heeft, worden deze meer dan één keer geteld. Om unieke gebruikers te tellen, moeten we creatiever worden. We kunnen de knipopdracht gebruiken om alle informatie te verwijderen, behalve de gebruikersnaam:

Het bovenstaande commando zegt: "neem de uitvoer van wie, en toon alleen het eerste veld met informatie, dat wordt beperkt door een spatie." Het geeft ons een lijst met alleen de gebruikersnamen, maar we moeten nog steeds herhaalde namen filteren.

Om dit te doen, kunnen we het sorteer -u commando toevoegen. Dit sorteert de namen alfabetisch en filtert alle regels eruit die niet uniek zijn:

En tot slot, om deze unieke gebruikers te tellen, voegen we wc -l toe aan het einde van onze opdrachtpijplijn:

Gebruik ps om elke gebruiker die een proces uitvoert te tellen

Een andere bruikbare techniek is om de ps- opdracht te gebruiken om een ​​lijst te maken voor elke gebruiker op het systeem dat eigenaar is van een proces dat momenteel wordt uitgevoerd. Om dit te doen, kunnen we ps gebruiken met de opties -e, -a, -h en -o-gebruiker . Ze kunnen als volgt worden gecombineerd:

Dit commando zegt: "toon informatie voor een heel proces in eigendom van een gebruiker, toon geen sprekers en druk alleen de naam van de gebruiker af ."

Merk op dat naast de gebruikers die eerder zijn vermeld door wie, we hier ook de wortel zien die hier wordt vermeld. De who- opdracht toont alleen gebruikers die zijn aangemeld bij een terminalsessie, maar ps vermeldt alle gebruikers met een lopend proces, ook als ze geen terminal hebben geopend. De opdracht ps bevat root en mogelijk andere systeemspecifieke gebruikers.

Net als voorheen kunnen we onze uitvoer sorteren en alleen unieke namen vermelden:

... en het gewenste totaal produceren: