在这个由无数代码行构建的王国里,每一个指令都如同一把钥匙,解锁着系统深藏的奥秘
今天,我们将聚焦于一个看似简单却功能强大的命令——`who`,通过它,我们可以窥探当前登录系统的用户信息,进而理解系统的运行状态和用户活动情况
`who`指令初印象 `who`,这个命令的名字直白而朴素,正如其功能一样直接——显示当前登录到系统的所有用户信息
无论是通过本地控制台、远程SSH连接还是图形界面登录的用户,`who`都能一一列出,为我们提供一份详尽的“在场人员名单”
在终端中输入`who`并按回车,你会看到类似如下的输出: user1 pts/0 2023-10-01 10:01 (: user2 pts/1 2023-10-01 10:15 (192.168.1.10 每一行代表一个登录会话,包含了用户名、终端类型、登录时间和来源等信息
这些信息对于系统管理员来说至关重要,它们能够帮助快速识别谁在使用系统、从哪里登录以及登录了多长时间,是进行用户管理、安全审计和故障排查的基础
深入解读`who`输出 让我们更细致地分析`who`命令的输出内容,以便更好地理解其背后的含义
- 用户名:这是登录到系统的用户的账户名
在Linux系统中,每个用户都有一个唯一的用户名,用于区分身份和权限
- 终端类型:显示用户登录时使用的终端类型
`pts`代表伪终端(pseudo-terminal),通常用于远程登录或图形界面下的终端仿真器
数字(如`pts/0`、`pts/1`)则区分了不同的会话
- 登录时间:记录用户登录到系统的时间,格式为“年-月-日 时:分”
这个信息对于追踪用户活动、分析系统负载非常有用
- 来源:如果是本地登录,通常显示为:0(对于图形界面的会话)或`:`后跟一个数字(对于本地控制台)
对于远程登录,则会显示用户的IP地址或主机名,这有助于识别用户的位置和连接来源
`who`的进阶用法 `who`命令不仅限于其基础形式,通过添加不同的选项和参数,我们可以获取更加丰富和定制化的信息
- who -H:显示列标题
在输出中添加头部信息,使得结果更加清晰易读
NAME LINE TIME HOST user1 pts/0 2023-10-01 10:01(:0) user2 pts/1 2023-10-01 10:15(192.168.1.100) - who -q:仅显示用户名和用户总数
这在需要快速了解当前有多少用户在线时非常有用
user1 user2 Users: 2 - who -T:显示终端名称和相关信息
这有助于识别用户是通过哪种类型的终端登录的
- who -a:显示所有用户的登录信息,包括系统进程和用户进程
这个选项通常会输出更多行,包括一些非交互式会话,如系统服务
- who -r:显示当前运行