當(dāng)前位置 主頁(yè) > 技術(shù)大全 >
無(wú)論是系統(tǒng)管理員需要了解誰(shuí)在使用系統(tǒng),還是用戶需要查看自己的登錄信息,`who`命令都是一個(gè)不可或缺的工具
本文將詳細(xì)介紹`who`命令的用法,并通過(guò)實(shí)例展示其強(qiáng)大的功能和靈活性
一、`who`命令的基本介紹 `who`命令用于顯示當(dāng)前登錄到系統(tǒng)的用戶信息
它提供了關(guān)于用戶登錄名、終端信息、登錄時(shí)間以及主機(jī)名等詳細(xì)數(shù)據(jù)
這些信息對(duì)于系統(tǒng)管理和監(jiān)控用戶活動(dòng)非常有用,能夠幫助管理員快速了解系統(tǒng)的使用情況
二、`who`命令的基本用法 `who`命令的基本語(yǔ)法非常簡(jiǎn)單,只需要在終端中輸入`who`即可顯示當(dāng)前登錄的用戶信息
例如: user1 pts/0 2023-10-24 10:45(:0) user2 pts/1 2023-10-24 11:00(192.168.1.1 上述輸出顯示了兩個(gè)用戶`user1`和`user2`的登錄信息,包括用戶名、終端名、登錄時(shí)間和登錄地址
三、`who`命令的常用選項(xiàng) `who`命令提供了多種選項(xiàng),用于顯示不同類(lèi)型的信息
以下是幾個(gè)常用選項(xiàng)的詳細(xì)介紹: 1.-a, --all:顯示所有信息,包括當(dāng)前用戶、啟動(dòng)時(shí)間、登錄時(shí)間、用戶IP地址等
這個(gè)選項(xiàng)會(huì)給出最全面的信息,包括系統(tǒng)啟動(dòng)時(shí)間、當(dāng)前登錄的用戶數(shù)量和他們的用戶名、當(dāng)前的運(yùn)行級(jí)別等
bash USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT user1 pts/0 :0 10:45 2.00s 0.05s 0.00s bash user2 pts/1 192.168.1.10 11:00 5.00s 0.07s 0.00s who 2.-b, --boot:顯示系統(tǒng)最近一次啟動(dòng)的時(shí)間
這對(duì)于了解系統(tǒng)已經(jīng)運(yùn)行了多長(zhǎng)時(shí)間非常有用
bash system boot 2023-10-24 09:00 3.-q, --count:顯示當(dāng)前登錄用戶的數(shù)量
這個(gè)選項(xiàng)簡(jiǎn)潔明了,只輸出用戶數(shù)量和用戶名
bash user1 user2 # users=2 4.-H, --heading:打印出列標(biāo)題
這有助于更好地理解輸出的每一列代表什么
bash NAME LINE TIME COMMENT root pts/0 2024-10-06 13:21(192.168.3.241) root pts/1 2024-10-06 13:47(192.168.3.241) admin pts/2 2024-10-06 13:48(192.168.3.8 5.-r, --runlevel:顯示當(dāng)前的運(yùn)行級(jí)別
運(yùn)行級(jí)別是Linux系統(tǒng)的一種狀態(tài),表示系統(tǒng)的運(yùn)行模式
bash run-level 3 2024-10-06 13:10 6.-u, --users:列出當(dāng)前登錄用戶信息
這個(gè)選項(xiàng)類(lèi)似于不帶任何參數(shù)的`who`命令,但輸出格式可能略有不同
bash root pts/0 2024-10-06 13:21.1815 (192.168.3.24 root pts/1 2024-10-06 13:47.1988 (192.168.3.24 admin pts/2 2024-10-06 13:48.2187 (192.168.3.89) 7.--ips:同時(shí)顯示登錄用戶的IP地址(如果可用)
這個(gè)選項(xiàng)在需要知道用戶從哪里登錄時(shí)非常有用
bash user1 pts/0 2023-10-24 10:45 (: user2 pts/1 2023-10-24 11:00 (192.168.1.10) 四、`who`命令的工作原理 `who`命令是通過(guò)讀取`/var/run/utmp`文件來(lái)獲取已登錄的用戶信息的
`utmp`文件記錄了每個(gè)用戶的登錄信息,由一系列`utmp`記錄組成,而`utmp`記錄的結(jié)構(gòu)定義位于`utmp.h`中
`utmp`記錄包含多個(gè)字段,如`ut_type`(記錄類(lèi)型)、`ut_pid`(登錄進(jìn)程的PID)、`ut_line`(終端設(shè)備名)、`ut_id`(終端名后綴)、`ut_user`(用戶名)、`ut_host`(遠(yuǎn)程登錄的主機(jī)名)等
通過(guò)解析這些字段,`who`命令能夠顯示詳細(xì)的用戶登錄信息
五、`who`命令的擴(kuò)展應(yīng)用 除了基本的用戶登錄信息外,`who`命令還可以與其他命令結(jié)合使用,實(shí)現(xiàn)更復(fù)雜的系統(tǒng)監(jiān)控和管理任務(wù)
例如: - 結(jié)合awk命令:可以使用awk命令對(duì)who的輸出進(jìn)行進(jìn)一步處理,提取特定的信息
例如,要提取所有登錄用戶的用戶名,可以使用以下命令: bash who | awk{print $1} - 結(jié)合grep命令:可以使用grep命令過(guò)濾`who`的輸出,只顯示特定的用戶信息
例如,要顯示用戶名為`root`的登錄信息,可以使用以下命令: bash who | grep root - 結(jié)合sort命令:可以使用sort命令對(duì)`who`的輸出進(jìn)行排序
例如,要按登錄時(shí)間排序,可以使用以下命令: bash who -H | sort -k3 六、總結(jié) `who`命令是Linux系統(tǒng)中一個(gè)簡(jiǎn)單但強(qiáng)大的工具,用于顯示當(dāng)前登錄到系統(tǒng)的用戶信息
它提供了多種選項(xiàng),可以顯示不同類(lèi)型的信息,如用戶登錄名、終端信息、登錄時(shí)間、主機(jī)名等
通過(guò)解析`/var/run/utmp`文件,`who`命令能夠獲取詳細(xì)的用戶登錄信息,幫助管理員快速了解系統(tǒng)的使用情況
此外,`who`命令還可以與其他命令結(jié)合使用,實(shí)現(xiàn)更復(fù)雜的系統(tǒng)監(jiān)控和管理任務(wù)
無(wú)論是系統(tǒng)管理員