当前位置:首页 > Linux > 正文

Linux如何查询用户名命令?

Linux中查看当前用户名可使用”whoami”或”id -un”命令;查看所有登录用户可用”who”或”w”命令。

查看当前登录用户

whoami命令

最直接的方式,仅显示当前终端登录的用户名:

$ whoami
john_doe  # 输出结果

id -un命令

显示当前用户UID对应的用户名(适用于脚本):

$ id -un
john_doe

适用场景:快速确认当前会话身份,无需参数。


查看系统所有用户

查看/etc/passwd文件

所有用户信息存储在系统文件中:

Linux如何查询用户名命令?  第1张

$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
john_doe:x:1000:1000:John Doe,,,:/home/john_doe:/bin/bash
...
  • 字段说明:每行按分割,第一列为用户名(如rootjohn_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

️ 关键注意事项

  1. 权限差异
    • /etc/passwd 可被所有用户读取
    • 部分命令(如 last)需 sudo 查看完整登录历史
  2. 环境变量干扰
    $USER 变量被修改,echo $USER 可能返回错误值
  3. 隐藏用户
    UID<1000 的系统用户不会在登录界面显示(如 www-data

▶️ 方法选择建议

场景需求 推荐命令
当前用户名 whoamiid -un
系统所有用户列表 getent passwd
实时登录用户及活动 w
用户组信息 groups

基于Linux核心文档(man 5 passwd)及Ubuntu/CentOS官方操作指南整理,已通过Bash 5.1环境验证,系统版本差异可能导致输出细微变化,建议通过 man [命令名] 查看手册确认细节。

原创声明:未经授权禁止转载,操作敏感命令时请备份数据。

0