linux 性能监控命令——w,who,whoami,whois ,who am i

时间:2025-04-26 13:10:44
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的区别: 
显示effective current username(即通过su username1之后,
   显示的是username1);
am i显示的是original username(即在使用su命令之前的username).


参考:linux性能监控命令....

          linux中who am i 和 whoami的区别...