1. 命令简介
users 命令用于显示当前登录到系统的所有用户名。该命令会读取系统登录记录文件,并输出当前活跃登录会话对应的用户名列表。如果一个用户有多个登录会话(例如通过多个终端或 SSH 连接登录),则该用户名会在输出中重复出现相应的次数。
该命令是 GNU coreutils 工具集的一部分,通常预装在大多数 Linux 发行版中。
2. 语法格式
plaintext
users [OPTION]... [FILE]参数说明
[OPTION]:可选的一个或多个选项,用于控制命令行为。[FILE]:可选的登录记录文件。如果未指定,命令默认读取/var/run/utmp文件来获取当前登录用户信息。历史上也支持读取/var/log/wtmp来查看历史登录记录,但标准用法通常不指定文件参数。
3. 常用选项及说明
表格
| 短选项 | 长选项 | 说明 |
|---|---|---|
| 无 | --help | 显示命令的帮助信息并退出 |
| 无 | --version | 显示命令的版本信息并退出 |
4. 示例用法
示例 1:显示当前所有登录用户
直接运行 users 命令,查看当前系统中的登录用户。
bash
运行
$ users alice bob charlie输出显示当前有三个用户登录:alice、bob 和 charlie。
示例 2:用户多次登录的显示
如果一个用户通过多个终端或会话登录,其用户名会重复显示。
bash
运行
$ users alice alice bob输出表明用户 alice 有两个活跃的登录会话,用户 bob 有一个。
示例 3:查看帮助信息
使用--help选项获取命令的详细用法说明。
bash
运行
$ users --help示例 4:查看版本信息
使用--version选项查看 users 命令的版本。
bash
运行
$ users --version示例 5:指定登录记录文件(高级用法)
理论上可以指定一个替代的登录记录文件(如旧的 wtmp 文件)进行分析,但这并非标准用法,且文件格式必须兼容。
bash
运行
$ users /var/log/wtmp.1注意:此用法不常见,且依赖于文件的存在和可读性。
示例 6:统计不重复登录用户数
users 本身无去重功能,可结合其他命令实现:
bash
运行
$ users | tr ' ' '\n' | sort -u | wc -l5. 注意事项
依赖登录记录文件users 命令的输出完全依赖于系统登录记录文件(默认为
/var/run/utmp)的准确性和完整性。如果该文件损坏或权限设置不当,命令可能无法正常工作或输出错误信息。显示的是登录会话该命令显示的是登录会话,而非独立的系统用户账户。因此,同一用户的多次登录会导致其用户名重复出现。
无复杂选项users 是一个功能单一的命令,没有用于排序、去重或格式化的内置选项。如果需要更复杂的处理(如去重、计数),需要结合其他命令(如 sort, uniq, wc)使用。
GNU coreutils该命令属于 GNU coreutils 包。更详细的信息可以通过系统手册 (man) 或 info 文档查看:
bash
运行
man users # 或 info coreutils 'users invocation'返回值
0:表示命令执行成功。- 非
0:表示执行过程中出现错误(如文件无法读取)。