複製鏈接
請複製以下鏈接發送給好友

WHO

(系統命令)

鎖定
WHO,是系統命令。它是一個linux的命令符,用於識別當前登錄的用户。
中文名
WHO
類    別
系統命令
用    途
linux命令,識別當前登錄的用户
語    法
who

目錄

WHO語法

who [ -a | -b -d -i -l -m -p -q -r -s -t -u -w -A -H -T ] [ File ]
whoami

WHO描述

who 命令顯示關於當前在本地系統上的所有用户的信息。顯示以下內容:登錄名、tty、登錄日期和時間。輸入whoami 顯示您的登錄名、tty、您登錄的日期和時間。如果用户是從一個遠程機器登錄的,那麼該機器的主機名也會被顯示出來。
who 命令也能顯示自從線路活動發生以來經過的時間、命令解釋器(shell)的進程標識、登錄、註銷、重新啓動和系統時鐘的變化,還能顯示由初始化進程生成的其它進程。
who 命令的一般輸出格式如下:
名稱 [狀態] 線路 時間 [活動] [進程標識] [出口] (主機名)
其中:
名稱 標識用户的登錄名。
狀態 表明線路是否對每個用户都是可寫的(請參閲 -T 標誌)。
線路 標識為在 /dev 目錄中查找到線路名。
時間 表示用户登錄的時間。
活動 表示自從在那個用户線路上的最後一個活動發生以來的小時和分鐘數。這裏的一個 .(點)表明在上一分鐘裏的線路活動。如果線路保持靜止已經超過 24 小時或自從最近系統啓動以來還沒有被使用,項就被標記為舊的。
Pid 標識用户登錄 shell 的進程標識。
項 標識進程終止狀態(請參閲 -d 標誌)。要得到關於終止值的更多信息,請參考 wait 子例程或 /usr/include/sys/signal.h 文件。
出口 標識已結束進程的退出狀態(請參閲 -d 標誌)。
主機名 指出用户從其進行登錄的機器名。
要獲取信息,who 命令通常檢查 /etc/utmp 文件。如果用 File 參數指定另一個文件,who 命令改為檢查那個文件。這個新文件通常是 /var/adm/wtmp 或 /etc/security/failedlogin 文件。
如果 File 參數指定了不止一個文件名,則只會使用最後的文件名。
注:
這個命令僅標識在本地節點上的用户。

WHO標誌

-a 處理 /etc/utmp 文件或有全部信息的指定文件。等同於指定 -bdlprtTu 標誌。
-b 指出最近系統啓動的時間和日期。
-d 顯示沒有被 init 重新生成的所有到期的進程。退出字段用於顯示死進程幷包含死進程的終止和退出值(由 wait 進程返回的)。(這個標誌用於通過察看應用程序返回的錯誤號來確定一個進程的結束原因。)
-l 列出任何登錄進程。
-m 僅顯示關於當前終端的信息。who -m 命令等同於 who am i 和 who am I 命令。
-p 列出任何當前活動的和以前已由 init 生成的活動進程。
-q 打印一份在本地系統上的用户和用户數的快速清單。
-r 顯示當前進程的運行級別。
-s 僅列出名字、線路和時間字段。這個標誌是缺省值;因此,who 和 who -s 命令是等效的。
-t 顯示 root 用户上一次用 date 命令對系統時鐘做的更改。如果 date 命令自從系統安裝以來還沒有被運行過, who -t 命令就不產生輸出。
-u 或 -i 顯示每個當前用户的用户名、tty、登錄時間、線路活動和進程標識。
-A 顯示在 /etc/utmp 文件中的所有記帳項。這些項是通過 acctwtmp 命令生成的。
-H 顯示一個頭(標題)。
-T 或 -w 顯示 tty 的狀態並如下顯示誰能夠對 tty 寫入:
+
對任何人都可寫。
-
僅對 root 用户或其所有者可寫。
?
遇到線路故障。
退出狀態
這個命令返回以下退出值:
0 成功完成。
>0 發生錯誤。

WHO示例

1. 要顯示關於誰正在使用本地系統節點的信息,請輸入:
who
顯示類似於以下內容的信息:
joe lft/0 Jun 8 08:34
2. 要顯示您的用户名,請輸入:
who am i
顯示類似於以下內容的信息:
george lft/0 Jun 8 08:34
3. 要顯示登錄、註銷、系統啓動和系統關閉的歷史記錄,請輸入:
who /var/adm/wtmp
顯示類似於以下內容的信息:
hank lft/0 Jun 8 08:34 (ausnix5)
john lft/0 Jun 8 08:34 (JIKey)
mary lft/0 Jun 8 08:22 (machine.austin.ibm)
4. 要顯示本地系統節點的運行級別,請輸入:
who -r
顯示類似於以下內容的信息:
. run-level 2 Jun 8 04:15 2 0 s
5. 要顯示任何當前活動的和以前已由 init 生成的活動進程,請輸入:
who -p
顯示類似於以下內容的信息:
srcmstr . Jun 8 04:15 old 2896
cron . Jun 8 04:15 old 4809
uprintfd . Jun 8 04:15 old 5158
6. 要通過指定 -bdlprtTu 標誌來處理 /var/adm/wtmp 文件,請輸入:
who -a /var/adm/wtmp
顯示類似於以下內容的信息:
. system boot Jun 19 10:13

. run-level 2 Jun 19 10:13

. . Jun 19 10:14 old

. . Jun 19 10:14 old

. . Jun 19 10:14 old

rc - . Jun 19 10:13 old

. . Jun 19 10:16 old

. . Jun 19 10:14 old

srcmstr - . Jun 19 10:14 old

rctcpip - . Jun 19 10:14 old

rcdce - . Jun 19 10:14 old

rccm - . Jun 19 10:15 old

dceupdt - . Jun 19 10:15 old

rcnfs - . Jun 19 10:15 old

cron - . Jun 19 10:16 old

piobe - . Jun 19 10:16 old
qdaemon - . Jun 19 10:16 old
writesrv - . Jun 19 10:16 old
uprintfd - . Jun 19 10:16 old
. . Jun 19 10:16 old
LOGIN - lft0 Jun 19 10:16 old
. . Jun 19 10:16 old
. . Jun 19 10:16 old

WHO文件

/etc/utmp 包含用户和記帳信息。
/etc/security/failedlogin 包含所有無效登錄的歷史記錄。
/var/adm/wtmp 包含自從上次文件創建以來的所有登錄歷史記錄。
/usr/include/sys/signal.h 包含一個終止值的列表。