無論是系統管理員需要了解誰在使用系統,還是用戶需要查看自己的登錄信息,`who`命令都是一個不可或缺的工具
本文將詳細介紹`who`命令的用法,并通過實例展示其強大的功能和靈活性
一、`who`命令的基本介紹 `who`命令用于顯示當前登錄到系統的用戶信息
它提供了關于用戶登錄名、終端信息、登錄時間以及主機名等詳細數據
這些信息對于系統管理和監控用戶活動非常有用,能夠幫助管理員快速了解系統的使用情況
二、`who`命令的基本用法 `who`命令的基本語法非常簡單,只需要在終端中輸入`who`即可顯示當前登錄的用戶信息
例如: 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`命令提供了多種選項,用于顯示不同類型的信息
以下是幾個常用選項的詳細介紹: 1.-a, --all:顯示所有信息,包括當前用戶、啟動時間、登錄時間、用戶IP地址等
這個選項會給出最全面的信息,包括系統啟動時間、當前登錄的用戶數量和他們的用戶名、當前的運行級別等
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:顯示系統最近一次啟動的時間
這對于了解系統已經運行了多長時間非常有用
bash system boot 2023-10-24 09:00 3.-q, --count:顯示當前登錄用戶的數量
這個選項簡潔明了,只輸出用戶數量和用戶名
bash user1 user2 # users=2 4.-H, --heading:打印出列標題
這有助于更好地理解輸出的每一列代表什么
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:顯示當前的運行級別
運行級別是Linux系統的一種狀態,表示系統的運行模式
bash run-level 3 2024-10-06 13:10 6.-u, --users:列出當前登錄用戶信息
這個選項類似于不帶任何參數的`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`記錄的結構定義位于`utmp.h`中
`utmp`記錄包含多個字段,如`ut_type`(記錄類型)、`ut_pid`(登錄進程的PID)、`ut_line`(終端設備名)、`ut_id`(終端名后綴)、`ut_user`(用戶名)、`ut_host`(遠程登錄的主機名)等
通過解析這些字段,`who`命令能夠顯示詳細的用戶登錄信息
五、`who`命令的擴展應用 除了基本的用戶登錄信息外,`who`命令還可以與其他命令結合使用,實現更復雜的系統監控和管理任務
例如: - 結合awk命令:可以使用awk命令對who的輸出進行進一步處理,提取特定的信息
例如,要提取所有登錄用戶的用戶名,可以使用以下命令: bash who | awk{print $1} - 結合grep命令:可以使用grep命令過濾`who`的輸出,只顯示特定的用戶信息
例如,要顯示用戶名為`root`的登錄信息,可以使用以下命令: bash who | grep root - 結合sort命令:可以使用sort命令對`who`的輸出進行排序
例如,要按登錄時間排序,可以使用以下命令: bash who -H | sort -k3 六、總結 `who`命令是Linux系統中一個簡單但強大的工具,用于顯示當前登錄到系統的用戶信息
它提供了多種選項,可以顯示不同類型的信息,如用戶登錄名、終端信息、登錄時間、主機名等
通過解析`/var/run/utmp`文件,`who`命令能夠獲取詳細的用戶登錄信息,幫助管理員快速了解系統的使用情況
此外,`who`命令還可以與其他命令結合使用,實現更復雜的系統監控和管理任務
無論是系統管理員