Der Befehl who zeigt Ihnen jede auf dem Computer geöffnete Anmeldesitzung:
Sie können auch den Befehl w verwenden, um eine detailliertere Ansicht dessen zu erhalten, was jede Anmeldesitzung tut:
Sie können die Gesamtzahl der offenen Sitzungen zählen, indem Sie die Zeilen in der Ausgabe von who oder w mit der Option -h zählen. (Die Option -h lässt Kopfzeilen weg, die wir nicht zählen wollen.) Um dies zu tun, leiten Sie die Ausgabe mithilfe des vertikalen Balkens (“|”) weiter, um eine Befehlspipeline zu erstellen. Die Ausgabe eines Programms in der Pipeline wird als Eingabe an das nächste weitergegeben. Hier zählen wir die Zeilen von who und w -h, indem wir sie an wc -l weiterleiten, wodurch effektiv eine Anzahl aktiver Sitzungen generiert wird.
Unique User zählen
Die obige Methode zählt Anmeldesitzungen, aber wenn ein Benutzer mehr als eine Anmeldesitzung geöffnet hat, werden sie mehr als einmal gezählt. Um Unique User zu zählen, müssen wir kreativer werden. Wir können den Befehl cut verwenden, um alle Informationen außer dem Benutzernamen zu entfernen:
Der obige Befehl sagt: “Nehmen Sie die Ausgabe von who und zeigen Sie nur das erste Informationsfeld an, das durch ein Leerzeichen begrenzt ist.” Es gibt uns nur eine Liste mit den Benutzernamen, aber wir müssen immer noch wiederholte Namen herausfiltern.
Dazu können wir den Befehl sort -u hinzufügen. Dadurch werden die Namen alphabetisch sortiert und nicht eindeutige Zeilen herausgefiltert:
Und schließlich, um diese eindeutigen Benutzer zu zählen, fügen wir wc -l am Ende unserer Befehlspipeline hinzu:
Verwenden von ps zum Zählen aller Benutzer, die einen Prozess ausführen
Eine weitere nützliche Technik besteht darin, den Befehl ps zu verwenden, um eine Liste aller Benutzer auf dem System zu erstellen, die Eigentümer eines derzeit laufenden Prozesses sind. Dazu können wir ps mit den Optionen -e, -a, -h und -o user verwenden. Sie können wie folgt kombiniert werden:
Dieser Befehl besagt: „Informationen für jeden Prozess anzeigen, der einem beliebigen Benutzer gehört, keine Kopfzeilen anzeigen und nur den Namen des Benutzers ausgeben.“
Beachten Sie, dass wir hier zusätzlich zu den Benutzern, die zuvor von who aufgelistet wurden, auch root sehen. Der Befehl who zeigt nur Benutzer an, die bei einer Terminalsitzung angemeldet sind, aber ps listet alle Benutzer auf, denen ein laufender Prozess gehört, selbst wenn sie kein Terminal geöffnet haben. Der Befehl ps enthält root und möglicherweise andere systemspezifische Benutzer.
Wie zuvor können wir unsere Ausgabe sortieren und nur eindeutige Namen auflisten:
…und erzeuge die gewünschte Summe: