最常用最可靠的方法是使用环境变量 $user;它由系统登录时自动设置,准确反映当前有效用户,脚本中直接引用 username=$user 即可,注意大小写敏感。

在Linux Shell中,获取当前登录用户名最常用、最可靠的方法是使用环境变量 $USER。
直接使用 $USER 变量
该变量由系统在用户登录时自动设置,通常准确反映当前有效用户(即执行命令的用户):
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- 在终端中直接输入:echo $USER
- 脚本中可直接引用:username=$USER
- 注意:不要写成 $user(小写),Shell区分大小写
其他可用方式(按推荐度排序)
虽然 $USER 最简洁,但某些场景下可考虑备用方法:
- $(whoami):调用外部命令,返回当前实际有效用户(UID对应用户名),比 $USER 更底层、更可靠,尤其在 su 或 sudo 切换后仍准确
- $(id -un):同样基于系统调用,id -un 输出当前用户的用户名,和 whoami 行为一致,部分脚本中偏好用它避免依赖外部命令路径
- LOGNAME:早期登录时设置的变量,一般与 $USER 相同,但某些非交互式环境(如 cron)可能未设置或不更新,不建议优先使用
注意事项
避免常见误区:
- $USER 是环境变量,不是命令,不能加括号或空格调用(如 $ USER 或 $(USER) 都会出错)
- 在 sudo 执行的脚本中,$USER 仍是原用户,若需目标用户(如 root),应使用 $(whoami) 或 $(id -un)
- 变量值不含空格或特殊字符,可安全用于文件名拼接等操作(如 /home/$USER/.bashrc)










