Linux命令who am i,who,whoami 今天要說的不是成龍的電影“我是誰”,而是Linux裡的who系列命令,包括who、whoami和who am i。 www.2cto.com 先看看這三個命令的輸出資訊: [rocrocket@rocrocket ~]$ whoamirocrocket[rocrocket@rocrocket ~]$ who am irocrocket pts/3 2008-12-30 13:17 (:0.0)[rocrocket@rocrocket ~]$ whorocrocket :0 2008-12-30 09:54rocrocket 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]# whoamiroot[root@rocrocket rocrocket]# who am irocrocket pts/3 2008-12-30 13:17 (:0.0)[root@rocrocket rocrocket]# whorocrocket :0 2008-12-30 09:54rocrocket 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來輸出,這樣可以在每列加上列名稱,有助於閱讀。