whoami 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,属于用户与权限命令族(见用户与权限命令族)。一句话回答"我现在以谁的身份在跑"。
whoami 打印当前 shell 的有效用户(effective user)名字。它和 id -un 完全等价,但名字更直白。
一、基本用法
bash
whoami # 输出 alice
sudo whoami # 输出 root(有效身份变了)
whoami反映的是有效 UID(EUID),不是你登录时用的账号。所以sudo whoami显示 root——这正是 sudo 提权后脚本里判断身份的依据。
二、与 id -un 等价
bash
whoami # alice
id -un # alice(完全一样)两者输出一致。
id -un更通用(id 还能取 gid 等),whoami胜在语义清晰、好记。
三、实战:脚本里确认身份
bash
[ "$(whoami)" = "root" ] || { echo "请 sudo 运行"; exit 1; }脚本守卫常用它确认是否 root。不过严格说用
id -u(数字、不受名字歧义影响)更稳妥,但whoami在交互提示里更友好。
四、whoami vs who / w
bash
who # 列出当前登录的所有会话(多人)
whoami # 只说"我这个 shell 是谁"who 看"系统上有哪些人登录",
whoami只看"当前这个终端会话的有效用户",范围更小更聚焦。
相关命令
一句话总结
whoami = 当前有效用户名(反映 EUID,非登录账号):sudo whoami 显示 root;等价于 id -un;脚本里确认是否 root 可用 [ "$(whoami)" = "root" ](严格用 id -u 更稳);区别于 who(看所有登录会话)。