Linux命令who am i,who,whoami



Linux命令who am i,who,whoami

 
今天要說的不是成龍的電影“我是誰”,而是Linux裏的who系列命令,包括
who、whoami和who am i。
  www.2cto.com  
先看看這三個命令的輸出信息:
 
[rocrocket@rocrocket ~]$ whoami
rocrocket
[rocrocket@rocrocket ~]$ who am i
rocrocket pts/3        2008-12-30 13:17 (:0.0)
[rocrocket@rocrocket ~]$ who
rocrocket :0           2008-12-30 09:54
rocrocket pts/0        2008-12-30 09:55 (:0.0)
rocrocket pts/1        2008-12-30 09:57 (:0.0)
rocrocket pts/3        2008-12-30 13:17 (:0.0)
當我用sudo su(或者sudo su -)更換到root用戶之後,你再看看:
  www.2cto.com  
[rocrocket@rocrocket ~]$ sudo su
[root@rocrocket rocrocket]# whoami
root
[root@rocrocket rocrocket]# who am i
rocrocket pts/3        2008-12-30 13:17 (:0.0)
[root@rocrocket rocrocket]# who
rocrocket :0           2008-12-30 09:54
rocrocket pts/0        2008-12-30 09:55 (:0.0)
rocrocket pts/1        2008-12-30 09:57 (:0.0)
rocrocket pts/3        2008-12-30 13:17 (:0.0)
 
看出區別來了吧,whoami顯示的是當前“操作用戶”的用戶名,而who am i顯示的是“登錄用戶”的用戶名。
 
用Linux的術語來解釋就是:(實際用戶=uid,即user id。有效用戶=euid,即effective user id)
 
who am i 顯示的是實際用戶的用戶名,即用戶登陸的時候的用戶ID。此命令相當於who -m。
whoami   顯示的是有效用戶ID.  www.2cto.com  
 
好了,明白了兩者區別之後,我們來說說who這個命令。
 
有人會問,爲什麼我sudo su到root之後,who裏面卻沒有顯示呢?
 
這是因爲su過去的用戶進程空間是作爲一個子空間存在,他並沒有得到一個登錄的tty。
 
who這個命令重點是用來查看當前有哪些用戶登錄到了本臺機器上。
 
who -m的作用和who am i的作用是一樣的。
 
who -q用來顯示當前登錄用戶的個數。
 
當你覺得who的輸出信息晦澀難懂時,可以使用who -H來輸出,這樣可以在每列加上列名稱,有助於閱讀
發佈了14 篇原創文章 · 獲贊 6 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章