1. 程式人生 > >linux 效能監控命令——w,who,whoami,whois ,who am i

linux 效能監控命令——w,who,whoami,whois ,who am i

whois 

  功能說明:查詢並顯示使用者資訊。 

  語  法:whois [帳號名稱] 

  補充說明:whois指令會去查詢並顯示指定帳號的使用者相關資訊,因為它是到Network Solutions的WHOIS資料庫去查詢,所以該帳號名稱必須在上面註冊方能尋獲,且名稱沒有大小寫的差別。 

whoami 

  功能說明:顯示使用者名稱稱。 

  語  法:whoami [--help][--version] 

  補充說明:顯示自身的使用者名稱稱,本指令相當於執行"id -un"指令。 

  參  數: 
  --help  線上幫助。 
  --version  顯示版本資訊。 

who 

  功能說明:顯示目前登入系統的使用者資訊。 


  語  法:who [-Himqsw][--help][--version][am i][記錄檔案] 

  補充說明:執行這項指令可得知目前有那些使用者登入系統,單獨執行who指令會列出登入帳號,使用的 
  終端機,登入時間以及從何處登入或正在使用哪個X顯示器。 

  參  數: 
  -H或--heading  顯示各欄位的標題資訊列。 
  -i或-u或--idle  顯示閒置時間,若該使用者在前一分鐘之內有進行任何動作,將標示成"."號,如果該使用者已超過24小時沒有任何動作,則標示出"old"字串。 
  -m  此引數的效果和指定"am i"字串相同。 
  -q或--count  只顯示登入系統的帳號名稱和總人數。 

  -s  此引數將忽略不予處理,僅負責解決who指令其他版本的相容性問題。 
  -w或-T或--mesg或--message或--writable  顯示使用者的資訊狀態列。 
  --help  線上幫助。 
  --version  顯示版本資訊。 



  功能說明:顯示目前登入系統的使用者資訊。 

  語  法:w [-fhlsuV][使用者名稱稱] 

  補充說明:執行這項指令可得知目前登入系統的使用者有那些人,以及他們正在執行的程式。單獨執行w 
  指令會顯示所有的使用者,您也可指定使用者名稱稱,僅顯示某位使用者的相關資訊。 

  參  數: 
  -f  開啟或關閉顯示使用者從何處登入系統。 

  -h  不顯示各欄位的標題資訊列。 
  -l  使用詳細格式列表,此為預設值。 
  -s  使用簡潔格式列表,不顯示使用者登入時間,終端機階段作業和程式所耗費的CPU時間。 
  -u  忽略執行程式的名稱,以及該程式耗費CPU時間的資訊。 

  -V  顯示版本資訊。 

Linux系統中who am i和whoami區別

       who am i 顯示的是實際使用者ID即使用者登陸的時候的使用者ID
  whoami   顯示的是有效使用者ID.

  但在大多數情況下,實際使用者ID和有效使用者ID是一致的。

  如
  login:zhx
  Pssword:
  $who am i
  zhx     pts/0    2007-08-16   13:16   (:0.0)
  $whoami
  zhx

  當切換使用者後:
  su
  Password:
  #who am i
  zhx     pts/0   007-08-16   13:16 (:0.0)
  #whoami
  root

  也可以說who am i 顯示的是切換使用者前的實際登陸的使用者ID,whoami是切換後的有效的使用者ID,此時此終端具有切換後用戶的訪問許可權,如本文中切換後則具有超級使用者的訪問許可權。

who am i 和whoami有何區別?

首先要說明uid和euid(effective user id)的區別。uid就是你login的時候使用的id,而euid則是你當前的有效id。因為登入後我們可以使用su切換使用者身份,所以uid和euid可能是不同的,程式在執行的時候一般看的都是euid,當然也有特出的,who am i就是一個。

舉個例子:使用者用ABC登陸,使用su變成root,用who am i看到的是ABC,使用whoami命令看到的是root。

login: u1

Password:

$ su

Password:

# /usr/ucb/whoami

root

# who am i

u/4        10月 31 23:18   (192.168.0.1)

who am i與whoami的區別: 
1.whoami顯示effective current username(即通過su username1之後,
   顯示的是username1);
2.who am i顯示的是original username(即在使用su命令之前的username).