Linux查看用戶的登錄信息
一、使用w或who命令都可以查看服務(wù)器上目前已登錄的用戶信息,兩者的區(qū)別在于,w命令除了能知道目前已登陸的用戶信息,還可以知道每個(gè)用戶執(zhí)行任務(wù)的情況。
w命令的基本格式如下:
[root@localhost ~]# w [選項(xiàng)] [用戶名]
此命令常用選項(xiàng)及含義,如表所示。如果 w 命令后跟 [用戶名],則表示只顯示此用戶的信息。
選項(xiàng) | 含義 |
-h | 不顯示輸出信息的標(biāo)題 |
-l | 用長(zhǎng)格式輸出 |
-s | 用短格式輸出,不顯示登陸時(shí)間,JCPU 和 PCPU 時(shí)間 |
-V | 顯示版本信息 |
【例 1】顯示當(dāng)前用戶登陸信息。

上面的輸出信息中,第一行其實(shí)和 top 命令的第一行非常類似,主要顯示了當(dāng)前的系統(tǒng)時(shí)間、系統(tǒng)從啟動(dòng)至今已運(yùn)行的時(shí)間、登陸到系統(tǒng)中的用戶數(shù)和系統(tǒng)平均負(fù)載。
平均負(fù)載(load average)指的是在 1 分鐘、5 分鐘、15 分鐘內(nèi)系統(tǒng)的負(fù)載狀況。
從第二行開始,顯示的是當(dāng)前所有登陸系統(tǒng)的用戶信息,第二行是用戶信息的各列標(biāo)題,從第三行開始每行代表一個(gè)用戶。這些標(biāo)題的含義如表所示。
|
標(biāo)題 | 含義 |
USER | 登錄到系統(tǒng)的用戶。 |
TTY | 登錄終端。 |
FROM | 表示用戶從哪里登陸進(jìn)來(lái),一般顯示遠(yuǎn)程登陸主機(jī)的 IP 地址或者主機(jī)名。 |
LOGIN@ | 用戶登陸的日期和時(shí)間。 |
IDLE | 表示某個(gè)程序上次從終端開始執(zhí)行到現(xiàn)在所持續(xù)的時(shí)間。 |
JCPU | 和該終端連接的所有進(jìn)程占用的 CPU 運(yùn)算時(shí)間。這個(gè)時(shí)間里并不包括過去的后臺(tái)作業(yè)時(shí)間,但是包括當(dāng)前正在運(yùn)行的后臺(tái)作業(yè)所占用的時(shí)間。 |
PCPU | 當(dāng)前進(jìn)程所占用的 CPU 運(yùn)算時(shí)間。 |
WHAT | 當(dāng)前用戶正在執(zhí)行的進(jìn)程名稱和選項(xiàng),換句話說,就是表示用戶當(dāng)前執(zhí)行的是什么命令。 |
相比較 w 命令,who 命令只能顯示當(dāng)前登陸的用戶信心,但無(wú)法知曉每個(gè)用戶正在執(zhí)行的命令。
who命令的基本格式如下:
[root@localhost ~]# who [選項(xiàng)] [file]
需要說明的是,who 命令默認(rèn)是通過 /var/run/utmp 文件來(lái)獲取登陸用戶信息,但如果通過 file 指定另一個(gè)文件,則 who 命令將不再默認(rèn)讀取 /var/run/utmp 文件,而是讀取該指定文件來(lái)獲取信息。
有關(guān) who 命令常用選項(xiàng)及含義,如表所示。
選項(xiàng) | 含義 |
-a | 列出所有信息,相當(dāng)于所有選項(xiàng)。 |
-b | 列出系統(tǒng)最近啟動(dòng)的時(shí)間日期。 |
-l | 列出所有可登陸的終端信息。 |
-m | 僅列出關(guān)于當(dāng)前終端的信息,who -m 命令等同于 who am i。 |
-q | 列出在本地系統(tǒng)上的用戶和用戶數(shù)的清單。 |
-r | 顯示當(dāng)前系統(tǒng)的運(yùn)行級(jí)別。 |
-s | 僅顯示名稱、線路和時(shí)間字段信息,這是 who 命令的默認(rèn)選項(xiàng)。 |
-u | 顯示當(dāng)前每個(gè)用戶的用戶名、登陸終端、登陸時(shí)間、線路活動(dòng)和進(jìn)程標(biāo)識(shí)。 |
-T 或 -w | 顯示 tty 終端的狀態(tài),“+”表示對(duì)任何人可寫,“-”表示僅對(duì) root 用戶或所有者可寫,“?”表示遇到線路故障。 |
【例 2】顯示系統(tǒng)最新啟動(dòng)日期,以及每個(gè)用戶的登陸詳情、終端狀態(tài)。

#用戶名 登錄終端 登錄時(shí)間(登錄來(lái)源IP)
二、使用last 或lastlog命令可以查看原先登錄的用戶現(xiàn)在已經(jīng)退出登錄的用戶信息,last命令可以查看當(dāng)前和過去登陸系統(tǒng)用戶的相關(guān)信息;lastlog 命令可以查看到每個(gè)系統(tǒng)用戶最近一次登陸系統(tǒng)的時(shí)間。
last 命令,此命令的基本格式如下所示:
[root@localhost ~]# last [選項(xiàng)]
選項(xiàng) | 含義 |
-a | 把從何處登陸系統(tǒng)的主機(jī)名或 IP 地址顯示在最后一行。 |
-R | 不顯示登陸系統(tǒng)的主機(jī)名或 IP 地址。 |
-x | 顯示系統(tǒng)關(guān)機(jī)、重新開機(jī)以及執(zhí)行等級(jí)的改變等信息。 |
-n 顯示列數(shù) | 設(shè)置列出信息的顯示列數(shù)。 |
-d | 將顯示的 IP 地址轉(zhuǎn)換成主機(jī)名稱。 |
在執(zhí)行 last 命令時(shí),它默認(rèn)會(huì)讀取 /var/log/wtmp 日志文件,這是一個(gè)二進(jìn)制文件,不能直接用 vi 編輯,只能通過 last 命令調(diào)用。
【例 1】查詢當(dāng)前和過去登錄的用戶信息。

#用戶名 登錄終端 登錄IP 登錄時(shí)間 - 退出時(shí)間(在線時(shí)間)

#還能看到系統(tǒng)的重啟時(shí)間
再來(lái)看看 lastlog 命令,此命令可以查看登陸過當(dāng)前系統(tǒng)用戶的最近一次登陸時(shí)間,比如:

#用戶名 端口 來(lái)自 最后登陸時(shí)間
lastlog 命令默認(rèn)是去讀取 /var/log/lastlog 日志文件的,這個(gè)文件同樣是二進(jìn)制文件,不能直接用 vi 編輯,需要使用 lastlog 命令調(diào)用。