可通过cat /etc/passwd、getent passwd、compgen -u、awk解析等命令查看Linux所有用户;通过cut /etc/group、getent group等命令查看所有用户组。
如果您需要了解当前Linux系统中所有已创建的用户及用户组信息,则可以通过系统内置命令直接读取用户数据库文件或调用账户管理工具获取。以下是执行此操作的具体步骤:
一、使用cat命令读取/etc/passwd文件查看所有用户
/etc/passwd文件存储了系统中每个用户的基本账户信息,每行对应一个用户,字段以冒号分隔,包含用户名、UID、主组GID、家目录、默认Shell等关键数据。
1、打开终端,输入以下命令并回车执行:
cat /etc/passwd
2、若仅需显示用户名列(即每行第一个字段),可配合cut命令过滤:
cut -d: -f1 /etc/passwd
3、为避免输出过长影响阅读,可添加管道符与less命令分页查看:
cut -d: -f1 /etc/passwd | less
二、使用getent命令查询用户数据库
getent命令能统一访问多种名称服务源(如files、DNS、LDAP),适用于启用了NSS扩展的系统,结果更全面且兼容网络用户。
1、执行以下命令列出所有本地及可解析用户:
getent passwd
2、提取纯用户名列表:
getent passwd | cut -d: -f1
3、若仅关注UID大于等于1000的普通用户(排除系统账户),可结合awk筛选:
getent passwd | awk -F: ‘$3 >= 1000 {print $1}’
三、使用compgen命令列出当前shell可用用户
compgen是bash内置命令,用于生成可能的命令补全候选词,其中-u选项专用于枚举系统用户列表,输出简洁且无需读取底层文件。
1、在bash或zsh终端中直接运行:
compgen -u