Frage von dotSupreme, 16

In einer Bash Shell (Linux) Anzahl der angemeldeten Nutzer via who addieren?

Huhu, ich muss in meiner Aufgabe die ich gerade in meinem Praktikum bekommen habe in der Shell ein Skript (.sh) schreiben welches mir ein mal alle angmeldeten Nutzer auf meinem PC bzw in meinem Netzwerk anzeigt und dann diese alle addiert und mir eine Zahl auswirft (die Zahl wieviele Leute in meinem Netzwerk eingeloggt sind) wenn also z.b. nur ich angemeldet wäre das es mir dann sagt: "Nutzer Online: 1" (als Beispiel).

Wie mache ich das? Danke für eure Hilfe! :)

Expertenantwort
von guenterhalt, Community-Experte für Linux, 11

ganz einfach so:

 who | cut  -f1 -d' ' | sort -u | wc -l

who würde alle User  auflisten, die die mehrfach eingeloggt sind erscheinen auch mehrfach ( auch z.B. wenn mehrere xterm's laufen)

cut trennt die jeweilige Zeile in Worte, durch Leerzeichen (-d'  ') getrennt und gibt das erste Wort aus.

sort sortiert und unterdrückt mehrfache Worte ( hier die Usernamen)

wc zählt die Zeilen ( -l ) und gibt sie aus.

Da die Ausgabe von who mit | an cut weitergeleitet und die Ausgabe von cut an sort  und dessen Ausgabe an wc weitergeleitet wird, erscheint als Ergebnis die Zahl der angemeldeten User.

Kommentar von Linuxhase ,

@guenterhalt

Statt

 who | cut  -f1 -d' ' | sort -u | wc -l

geht es auch so:

 who | cut  -f1 -d' ' | uniq | wc -l

Ist 'nen Ticken kürzer ;-)

Und so geht es sogar noch etwas kürzer:

who -q | grep '#' | cut -d'=' -f2

Linuxhase

Kommentar von Linuxhase ,
who -q | wc -l
Antwort
von Gravityz, 13

Hallo erstmal,

Evt könnte dir der Befehl weiterhelfen "who | wc -l". Der Befehl listet alle angemeldeten User auf, zählt sie und gibt dir eine Zahl aus.

Das ganze noch in ein Bash script verpacken und fertig.

MFG

Antwort
von Linuxhase, 8

Hallo

ich muss in meiner Aufgabe [....] in der Shell ein Skript (.sh) schreiben welches mir ein mal alle angmeldeten Nutzer auf meinem PC bzw in meinem Netzwerk anzeigt

Es ist ja wohl ein Unterschied ob man die Benutzer des gleichen Systems oder die aller anderen anzeigen lassen will.

Die Nutzer auf dem eigenen System sieht man, als root, mit den Kommandos:

who

oder vielleicht sogar:

w

was sogar noch anzeigt was der User gerade ausführt.

Die Benutzer von anderen Systemen, auch wenn diese im gleichen Netzwerk hängen, kann man nicht abfragen. Was man aber abfragen kann ist, welche Computer im Netzwerk sind.

Linuxhase

Keine passende Antwort gefunden?

Fragen Sie die Community