who 概述
`who` 命令基于系统的 `/var/run/utmp` (或 `/var/log/wtmp`) 文件中记录的信息,显示当前激活的登录会话。该文件保存用户登录和登出记录、系统启动/关闭时间等信息。`who` 在多用户环境中特别必要,用于确定系统上谁正在访问。
who 的主要角色
`who` 命令主要用于以下目的:
主要应用领域
- 确认登录用户: 显示当前系统上登录的用户的姓名、终端、登录时间等信息。
- 系统监控: 监控服务器上是否有不必要或异常的登录。
- 协作环境: 确认其他用户是否正在访问系统,以便进行协作或避免冲突。
- 脚本自动化: `who` 命令用于检查特定用户是否登录的逻辑。
`who` vs `w` vs `whoami`
与用户信息相关的多个命令,每个命令的目的不同。
- `who`: 显示当前系统上登录的所有用户的信息。
- `w`: 除了当前登录用户的信息外,还显示每个用户“正在做什么”(当前正在运行的进程)的详细信息。提供比 `who` 更多的信息。
- `whoami`: 显示当前执行命令的“自己”的有效用户名。(即,登录的用户名)
主要 who 命令选项
`who` 命令通常不带选项使用,但提供了一些有用的选项,以添加特定信息或更改输出格式。
1. 基本信息输出
2. 额外信息输出
3. 简洁输出
生成的命令:
请尝试组合命令。
描述:
`who` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
使用示例
通过多种 `who` 命令的应用示例,学习如何有效查看系统上登录的用户信息。
查看当前登录用户列表
who
通过最基本的 `who` 命令执行,展示系统上登录的所有用户的姓名、终端、登录时间等信息。
显示登录用户信息和列标题
who -H
在输出结果中包含每个信息的标题(USER, LINE, WHEN 等),以提高可读性。
确认系统启动时间
who -b
输出系统最后一次启动的确切日期和时间。
仅简要确认登录用户数量
who -q
仅显示当前系统上登录的总用户数量和用户姓名列表。
查看登录用户及其空闲时间、PID
who -u
额外显示每个登录用户的空闲时间(无活动时间)和控制登录会话的进程 ID(PID)。
确认当前执行级别
who -r
查看系统的当前“运行级别”(多用户模式、单用户模式等)。