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