在Linux系统的日常使用和维护中,查看当前登录的用户名是基础且高频的操作,无论是执行权限校验、编写自动化脚本还是排查用户相关问题,都需要先确认当前用户身份。不同的命令和获取方式适用于不同的场景,掌握多种方法能提升操作效率。

常用查看命令
whoami命令
whoami是最直接查看当前有效用户名的命令,它会直接输出当前shell会话对应的用户名,输出内容简洁,没有额外信息,适合快速确认身份。
# 执行whoami命令 whoami # 输出示例:root
id命令
id命令可以输出当前用户的详细信息,包括用户ID(uid)、组ID(gid)以及所属的所有组信息,如果只需要用户名,可以配合格式化参数使用。
# 查看当前用户完整信息 id # 输出示例:uid=0(root) gid=0(root) groups=0(root) # 只输出用户名 id -un # 输出示例:root
logname命令
logname命令输出的是登录系统时使用的初始用户名,即使后续通过su命令切换了用户,它也不会改变,适合需要确认原始登录身份的场景。
# 执行logname命令 logname # 输出示例:testuser
通过环境变量获取
Linux系统中预设了多个和用户相关的环境变量,其中$USER和$USERNAME都存储了当前用户名,通过echo命令打印即可获取。
# 打印USER环境变量 echo $USER # 输出示例:root # 打印USERNAME环境变量 echo $USERNAME # 输出示例:root
不同方法对比
为了更清晰地了解不同方法的差异,以下是常用方式的对比:
| 方法 | 输出内容 | 是否受用户切换影响 | 适用场景 |
|---|---|---|---|
| whoami | 仅当前有效用户名 | 是 | 快速确认当前操作身份 |
| id -un | 仅当前有效用户名 | 是 | 需要同时获取用户ID等信息时 |
| logname | 初始登录用户名 | 否 | 确认原始登录用户 |
| echo $USER | 当前有效用户名 | 是 | 脚本中快速获取用户名 |
注意事项
- 如果通过su命令切换到其他用户,whoami、id -un、echo $USER的输出都会变为切换后的用户名,而logname仍显示初始登录用户名。
- 部分精简的Linux系统可能没有预装logname命令,此时可以优先使用whoami或者环境变量方式获取。
- 在编写shell脚本时,如果需要获取当前执行脚本的用户,推荐使用whoami或者id -un,兼容性更好。