可使用 cut -d: -f1 /etc/passwd 查看所有用户,或用 getent passwd | awk -F: '$3 >= 1000 {print $1}' 筛选普通用户(UID≥1000)。

如果您需要在 Linux 系统中列出所有已创建的用户账户,则可以通过读取系统用户数据库文件或使用内置命令来获取完整用户列表。以下是几种直接有效的查看方式:
一、读取 /etc/passwd 文件
/etc/passwd 是存储系统用户基本信息的核心文本文件,每一行对应一个用户,字段以冒号分隔。提取用户名只需截取每行第一个字段。
1、在终端中执行 cut -d: -f1 /etc/passwd 命令,将显示全部用户名(含系统用户)。
2、若仅需普通用户(UID ≥ 1000),可追加过滤:cut -d: -f1,3 /etc/passwd | awk -F: '$2 >= 1000 {print $1}'。
二、使用 getent 命令查询用户数据库
getent 命令可统一访问多种名称服务(如 files、LDAP、NIS),适用于本地与网络用户混合环境,结果更权威且兼容性更强。
1、运行 getent passwd | cut -d: -f1 获取所有用户条目中的用户名。
2、筛选 UID 范围内的普通用户:getent passwd | awk -F: '$3 >= 1000 && $3 。
三、使用 compgen 内置命令(仅当前 Shell 会话可用)
compgen 是 Bash 内置命令,用于生成可能的补全候选词,其中 -u 选项专用于枚举当前 Shell 可识别的用户名(基于 /etc/passwd)。
1、输入 compgen -u 即可输出全部用户名,无需额外解析。
2、如需按字母排序显示:compgen -u | sort。
四、使用 lslogins 命令(需 util-linux v2.30+)
lslogins 提供用户账户的综合信息视图,包含 UID、GID、主目录、Shell 等,并默认排除系统账户(UID
1、执行 lslogins -u 列出所有可登录用户(不含系统用户)。
2、添加 -o 选项自定义输出字段,例如:lslogins -u -o USER,UID,GROUP。
五、使用 awk 直接解析 /etc/passwd 并排除系统账户
通过 awk 对 /etc/passwd 进行条件判断和字段提取,可灵活控制输出格式与范围,避免依赖外部工具链。
1、运行 awk -F: '$3 >= 1000 && $3 。
2、该命令同时检查 UID 范围、登录 Shell 类型,排除无交互权限的账户。










