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實現中輸出的格式差別很大。