查看当前登录用户
whoami
命令
最直接的方式,仅显示当前终端登录的用户名:
$ whoami john_doe # 输出结果
id -un
命令
显示当前用户UID对应的用户名(适用于脚本):
$ id -un john_doe
适用场景:快速确认当前会话身份,无需参数。
查看系统所有用户
查看/etc/passwd
文件
所有用户信息存储在系统文件中:
$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash john_doe:x:1000:1000:John Doe,,,:/home/john_doe:/bin/bash ...
- 字段说明:每行按分割,第一列为用户名(如
root
、john_doe
)。
getent passwd
命令
更安全的系统兼容方式(支持LDAP等):
$ getent passwd | cut -d: -f1 root john_doe daemon ...
权限要求:普通用户可执行,无sudo需求。
查看已登录系统的用户
who
命令
显示当前登录会话及来源:
$ who john_doe :0 2025-07-20 09:30 (:0) alice pts/1 2025-07-20 10:15 (192.168.1.5)
w
命令
增强版信息(含正在运行的命令):
$ w 11:30:01 up 2 days, 3:15, 2 users, load average: 0.12 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT john_doe :0 :0 09:30 ?xdm? 5:22 0.01s /usr/bin/gnome-shell alice pts/1 192.168.1.5 10:15 0.00s 0.05s 0.01s sshd: alice [priv]
查看用户组关联
groups
命令
显示当前用户所属的组:
$ groups john_doe adm cdrom sudo dip plugdev lxd
⚠️ 关键注意事项
- 权限差异:
/etc/passwd
可被所有用户读取- 部分命令(如
last
)需sudo
查看完整登录历史
- 环境变量干扰:
若$USER
变量被修改,echo $USER
可能返回错误值 - 隐藏用户:
UID<1000 的系统用户不会在登录界面显示(如www-data
)
▶️ 方法选择建议
场景需求 | 推荐命令 |
---|---|
当前用户名 | whoami 或 id -un |
系统所有用户列表 | getent passwd |
实时登录用户及活动 | w |
用户组信息 | groups |
基于Linux核心文档(man 5 passwd
)及Ubuntu/CentOS官方操作指南整理,已通过Bash 5.1环境验证,系统版本差异可能导致输出细微变化,建议通过 man [命令名]
查看手册确认细节。
原创声明:未经授权禁止转载,操作敏感命令时请备份数据。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/14712.html