who (Unix)
who是顯示當前登錄到計算機的用戶列表的標準 Unix 命令。
who
與命令w有關:w
提供相同的信息,但也顯示額外的數據和統計信息。
規範
單一Unix規範(SUS)要求who
應列出有關可訪問用戶的信息。 XSI 擴展也要求應列出用戶名、終端、登錄時間、進程 ID 和自上次活動以來的時間等其他數據;此外,用於用戶信息的備用系統數據庫可指定為who
的可選參數。
該命令可以附加參數am i
或am I
(即who am i
),來調用顯示有關當前終端的信息(請參閱命令tty和-m選項,同該調用是等效的)。
用法
無擴展的SUS僅指定以下的-m
、-T
和-u
選項,所有其他選項都在XSI擴展中指定:
- -a,使用-b,-d,-l,-p,-r,-t,-T和-u處理用於用戶信息的系統數據庫。
- -b,顯示系統上次重新啟動的時間
- -d,顯示殭屍進程及相關細節
- -H,顯示列標題
- -l,顯示用戶可以登錄的終端
- -m,僅顯示有關當前終端的信息
- -p,顯示活動進程
- -q,快速格式,僅顯示名稱和所有登錄用戶的數量,禁用所有其他選項;相當於用戶命令行實用程序
- -r,顯示init進程的運行級別。
- -s(默認)僅顯示名稱,終端和時間詳細信息
- -t,顯示系統時鐘最後更改的時間
- -T,以標準格式顯示每個終端的詳細信息
- -u,顯示空閒時間;XSI顯示用戶登錄並顯示終端是否最近使用過的信息
其他Unix和類Unix操作系統可能會添加額外的選項。GNU who包含-i選項(同-u類似)和-w選項(顯示列出的用戶是否接受消息,SUS 在指定-T時顯示此消息),但GNU who和BSD版本都省略了上述的一些選項(如-a,-b,-d等);GNU 版本反而使用 -l 來嘗試通過 DNS 查驗主機名。
輸出
沒有擴展名的SUS指定輸出格式為「實現定義」(Implementation-defined)。 XSI擴展指定了一種格式,但它沒有完全指定: 分隔符和字段長度沒有精確指定。 因此,Unix實現中輸出的格式差別很大。