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

3 Antworten

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

Woher ich das weiß:eigene Erfahrung – Ich benutze seit 2007 Linux und habe LPIC101 und LPIC102

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.

Woher ich das weiß:Berufserfahrung – openSuSE seit 1995
Linuxhase  21.09.2016, 21:11

@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

0

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