作為系統管理員,你可能經常會(在某個時候)需要查看系統中有哪些用戶正在活動。有些時候,你甚至需要知道他(她)們正在做什么。本文為我們總結了4種查看系統用戶信息(通過編號(ID))的方法。
1. 使用w命令查看登錄用戶正在使用的進程信息
w命令用于顯示已經登錄系統的用戶的名稱,以及他們正在做的事。該命令所使用的信息來源于/var/run/utmp文件。w命令輸出的信息包括:
-用戶名稱
-用戶的機器名稱或tty號
-遠程主機地址
-用戶登錄系統的時間
-空閑時間(作用不大)
-附加到tty(終端)的進程所用的時間(JCPU時間)
-當前進程所用時間(PCPU時間)
-用戶當前正在使用的命令
========w命令還可以使用以下選項
-h忽略頭文件信息
-u顯示結果的加載時間
-s不顯示JCPU, PCPU, 登錄時間
$w
23:04:27 up 29 days,? 7:51,? 3 users,? load average: 0.04, 0.06, 0.02
USER? ? TTY? ? ? FROM? ? ? ? ? ? ? LOGIN@? IDLE? JCPU? PCPU WHAT
ramesh? pts/0? ? dev-db-server? ? ? ? 22:57? ? 8.00s? 0.05s? 0.01s sshd: ramesh [priv]
jason? ? pts/1? ? dev-db-server? ? ? ? 23:01? ? 2:53? 0.01s? 0.01s -bash
john? ? pts/2? ? dev-db-server? ? ? ? 23:04? ? 0.00s? 0.00s? 0.00s w
$w -h
ramesh? pts/0? ? dev-db-server? ? ? ? 22:57? 17:43? 2.52s? 0.01s sshd: ramesh [priv]
jason? ? pts/1? ? dev-db-server? ? ? ? 23:01? 20:28? 0.01s? 0.01s -bash
john? ? pts/2? ? dev-db-server? ? ? ? 23:04? ? 0.00s? 0.03s? 0.00s w -h
$w -u
23:22:06 up 29 days,? 8:08,? 3 users,? load average: 0.00, 0.00, 0.00
USER? ? TTY? ? ? FROM? ? ? ? ? ? ? LOGIN@? IDLE? JCPU? PCPU WHAT
ramesh? pts/0? ? dev-db-server? ? ? ? 22:57? 17:47? 2.52s? 2.49s top
jason? ? pts/1? ? dev-db-server? ? ? ? 23:01? 20:32? 0.01s? 0.01s -bash
john? ? pts/2? ? dev-db-server? ? ? ? 23:04? ? 0.00s? 0.03s? 0.00s w -u
$w -s
23:22:10 up 29 days,? 8:08,? 3 users,? load average: 0.00, 0.00, 0.00
USER? ? TTY? ? ? FROM? ? ? ? ? ? ? IDLE WHAT
ramesh? pts/0? ? dev-db-server? ? ? ? 17:51? sshd: ramesh [priv]
jason? ? pts/1? ? dev-db-server? ? ? ? 20:36? -bash
john? ? pts/2? ? dev-db-server? ? ? ? 1.00s w -
2.使用who命令查看(登錄)用戶名稱及所啟動的進程
who命令用于列舉出當前已登錄系統的用戶名稱。其輸出為:用戶名、tty號、時間日期、主機地址。
$who
ramesh pts/0? ? ? ? 2009-03-28 22:57 (dev-db-server)
jason? pts/1? ? ? ? 2009-03-28 23:01 (dev-db-server)
如果只希望列出用戶,可以使用如下語句:
補充:users命令,可用于打印輸出登錄服務器的用戶名稱。該命令除了有help和version選項外,再沒有其他選項。如果某用戶使用了多個終端,則相應的會顯示多個重復的用戶名。
$users
john jason ramesh
3.使用whoami命令查看你所使用的登錄名稱
whoami命令用于顯示登入的用戶名。
$whoami
john
whoami命令的執(zhí)行效果和id -un的效果完全一樣,例如:
$id -unjohn
whoami命令能顯示當前登入的用戶名稱,以及當前所使用的tty信息。該命令的輸出結果包括如下內容:用戶名、tty名、當前時間日期,同時還包括用戶登錄系統所使用的鏈接地址。
$who am i
john? ? pts/2? ? ? ? 2009-03-28 23:04 (dev-db-server)
$who mom likes
john? ? pts/2? ? ? ? 2009-03-28 23:04 (dev-db-server)
Warning:Don't try "who mom hates" command.
當然,如果你使用su命令改變用戶,則該命令(whoami)所顯示的結果將隨之改變。
4. 隨時查看系統的歷史信息(曾經使用過系統的用戶信息)
last命令可用于顯示特定用戶登錄系統的歷史記錄。如果沒有指定任何參數,則顯示所有用戶的歷史信息。在默認情況下,這些信息(所顯示的信息)將來源于/var/log/wtmp文件。該命令的輸出結果包含以下幾列信息:
·用戶名稱
·tty設備號
·歷史登錄時間日期
·登出時間日期
·總工作時間
$last jason
jason? pts/0? ? ? ? dev-db-server? Fri Mar 27 22:57? still logged in
jason? pts/0? ? ? ? dev-db-server? Fri Mar 27 22:09 - 22:54? (00:45)
jason? pts/0? ? ? ? dev-db-server? Wed Mar 25 19:58 - 22:26? (02:28)