作為一名系統管理員,我們需要弄清楚在一個特定的時間點都有誰活躍在系統上。必須嚴密監視我們的服務器。但是,我們當然不可能一天24小時都盯著系統。在linux系統中,我們可以使用who命令查看登錄者信息。
who命令能夠打印 當前都有誰登錄到系統中 的相關信息 。who命令只會顯示真正登錄到系統中的用戶。它不會顯示那些通過su命令切換用戶的登錄者。
在大多數linux發行版中,who命令都是默認安裝上的。想使用該命令,只需在控制台敲命令就行了。不帶選項的話,運行該命令產生默認輸出。
$ who
Who命令有一些參數用於調整輸出。以下是常用的例子。
使用 -b 選項
$ who -b
可以看到系統啟動是在2013年12月21日,下午3:52。
使用 -r 選項,who命令會打印出初始化進程的當前運行級別
$ who -r
輸出顯示2013年12月21日,下午3:52系統以 級別2 開始運行。
使用 -H 選項為每一列添加標題
$ who -H
可以使用-m選項。
$ who -m
如果系統同時有多人登錄在線,-q 選項協助你完成計數功能。
$ who -q
默認情況下,who命令不會打印空閒時間和PID信息。如果打算顯示這些信息,使用-u選項。不要忘記使用 -H選項讓顯示的信息更加簡單易讀。
$ who -u -H
空閒時間 包含了最近最後一次活動以來消逝的時間. 所以,00:13 意思是 用戶leni已經13分鐘沒執行過命令了. (.)符號 是指該終端過去的一分鐘有過活動。在那期間,我們稱之為 “current” 。PID 是用戶shell程序的進程ID號。
使用-l選項
$ who -l
第一列只顯示系統登錄守護進程的名字。上面截圖中的數字 967, 971等是進程ID。
使用-a選項會顯示所有信息。例如:
$ who -a
你會發現 who 命令跟 w 命令在某些方面有些相像。不要為此感到疑惑,為什麼linux要實現這些在功能上相近的命令。你可以使用你覺得最適合你的或者適用於某種場合的命令。請查閱who命令手冊了解更多詳細信息。
Linux命令之who - 查看當前登錄用戶 http://www.linuxidc.com/Linux/2011-04/34764.htm
Linux C編程的小例子——實現who命令(第二版) http://www.linuxidc.com/Linux/2014-01/94578.htm
Linux who命令參數及用法詳解 http://www.linuxidc.com/Linux/2012-01/52137.htm