who*_*ami 9 users who w whoami
在在线命令行平台中,例如 Codecademy 上的一个,当我运行时
for cmd in w who whoami id
do
echo $cmd
$cmd
echo =========================
echo " "
done
Run Code Online (Sandbox Code Playgroud)
我得到
w
00:52:54 up 8 days, 14:10, 0 users, load average: 3.78, 2.98, 2.69
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
=========================
who
=========================
whoami
ccuser
=========================
id
uid=1000(ccuser) gid=1000(ccuser) groups=1000(ccuser)
=========================
Run Code Online (Sandbox Code Playgroud)
注意 onlywhoami
和id
output 的东西。当我在我的电脑上运行同样的东西时,我看到所有命令的结果都相似。
为什么不Codecademy网站为用户显示w
和who
?这些命令有什么不同?
Jde*_*eBP 13
id
报告
whoami
报告其自身进程的当前凭据。who
并w
报告登录数据库中的活动登录会话表。BSD doco 指出,whoami
它完成了 工作的一个子集id
,这id
使它过时了。
系统不必具有活动登录会话表。在 Linux 操作系统和 BSD 上,如果该表尚未在引导时创建,或此后已被删除,则系统将在没有任何内容的情况下运行。此外,登录和注销不会在 Linux 操作系统上隐式创建它。
此外,该表不需要非特权用户可读,并且命令who
和w
命令都不会将此报告为错误。
systemd-update-utmp.service
. systemd 手册页。Freedesktop.org。