who (Unix)

who ist ein klassischer Befehl unter Unix-Betriebssystemen, der eine Liste der zurzeit auf dem System angemeldeten Benutzer anzeigt. who ist in der Single UNIX Specification als erforderliche Komponente vorgeschrieben nebst seinem erwartbaren Verhalten. Die GNU-Implementierung ist Element der GNU Core Utilities.

Geschichte

Who gehört zu den historisch ältesten Befehlen in Unix-Umgebungen. Da der Befehl aus einer Zeit vor grafischen Benutzeroberflächen datiert, ist die Anzeige auf manchen Plattformen insofern nicht vollständig, als virtuelle X11-Terminals wie xterm nicht berücksichtigt werden.

Mit der Standardisierung durch die Single Unix Specification wurde festgelegt, dass who mindestens eine Liste über die angemeldeten Benutzer ausgeben soll. Die XSI-Erweiterung sieht zudem vor, dass auch Daten über den Benutzernamen, das verwendete Terminal, die Uhrzeit des Logins, die Prozess-ID der Login-Shell sowie die Zeit seit der letzten Aktivität im Terminal (Idle-Zeit) ausgegeben werden soll.

Beispiel

Der Aufruf von who unter einem Linux-System, auf dem der Benutzer bob auf mehreren virtuellen Terminals eingeloggt ist, könnte so aussehen:

$ who
bob     pts/1        2008-05-18 00:30 (p57a6d3a7:S.0)
bob     pts/2        2008-07-20 18:18 (p57a6d3a7:S.1)
bob     pts/4        2008-05-18 22:59 (p57a6d3a7:S.3)
bob     pts/3        2008-05-18 00:53 (p57a6d3a7:S.2)
bob     pts/5        2008-07-26 23:20 (p57a6d3a7:S.4)

Dabei gibt die erste Spalte den Benutzernamen wieder, die zweite den des Login-Terminals, die dritte die Login-Zeit und dahinter, in Klammern, von welchem Host der Benutzer verbunden ist (über SSH).

Alternativen

Das who-Kommando ähnelt dem Unix-Kommando w, welches zu den Informationen von who auch noch zusätzliche Daten ausgibt, wie z. B. das von jedem Benutzer zuletzt ausgeführte Kommando.

Wenn who mit den Parametern am i aufgerufen wird, gibt es wie das Unix-Kommando whoami den Namen des angemeldeten Benutzers aus, allerdings zusätzlich auch den Terminalnamen, die Zeit des Logins und den Rechnernamen, von dem das Login kommt.

Der Befehl last wertet auch vergangene Ein-/Auslogvorgänge aus und kann entsprechend mehr Informationen anzeigen. Mit last -p now listet der Befehl wie die bereits vorgestellten Programme nur die aktuell angemeldeten Benutzer.

Für weitere Informationen siehe auch man 5 utmp

Weblinks