无论是系统管理员需要了解谁在使用系统,还是用户需要查看自己的登录信息,`who`命令都是一个不可或缺的工具
本文将详细介绍`who`命令的用法,并通过实例展示其强大的功能和灵活性
一、`who`命令的基本介绍 `who`命令用于显示当前登录到系统的用户信息
它提供了关于用户登录名、终端信息、登录时间以及主机名等详细数据
这些信息对于系统管理和监控用户活动非常有用,能够帮助管理员快速了解系统的使用情况
二、`who`命令的基本用法 `who`命令的基本语法非常简单,只需要在终端中输入`who`即可显示当前登录的用户信息
例如: user1 pts/0 2023-10-24 10:45(:0) user2 pts/1 2023-10-24 11:00(192.168.1.1 上述输出显示了两个用户`user1`和`user2`的登录信息,包括用户名、终端名、登录时间和登录地址
三、`who`命令的常用选项 `who`命令提供了多种选项,用于显示不同类型的信息
以下是几个常用选项的详细介绍: 1.-a, --all:显示所有信息,包括当前用户、启动时间、登录时间、用户IP地址等
这个选项会给出最全面的信息,包括系统启动时间、当前登录的用户数量和他们的用户名、当前的运行级别等
bash USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT user1 pts/0 :0 10:45 2.00s 0.05s 0.00s bash user2 pts/1 192.168.1.10 11:00 5.00s 0.07s 0.00s who 2.-b, --boot:显示系统最近一次启动的时间
这对于了解系统已经运行了多长时间非常有用
bash system boot 2023-10-24 09:00 3.-q, --count:显示当前登录用户的数量
这个选项简洁明了,只输出用户数量和用户名
bash user1 user2 # users=2 4.-H, --heading:打印出列标题
这有助于更好地理解输出的每一列代表什么
bash NAME LINE TIME COMMENT root pts/0 2024-10-06 13:21(192.168.3.241) root pts/1 2024-10-06 13:47(192.168.3.241) admin pts/2 2024-10-06 13:48(192.168.3.8 5.-r, --runlevel:显示当前的运行级别
运行级别是Linux系统的一种状态,表示系统的运行模式
bash run-level 3 2024-10-06 13:10 6.-u, --users:列出当前登录用户信息
这个选项类似于不带任何参数的`who`命令,但输出格式可能略有不同
bash root pts/0 2024-10-06 13:21.1815 (192.168.3.24 root pts/1 2024-10-06 13:47.1988 (192.168.3.24 admin pts/2 2024-10-06 13:48.2187 (192.168.3.89) 7.--ips:同时显示登录用户的IP地址(如果可用)
这个选项在需要知道用户从哪里登录时非常有用
bash user1 pts/0 2023-10-24 10:45 (: user2 pts/1 2023-10-24 11:00 (192.168.1.10) 四、`who`命令的工作原理 `who`命令是通过读取`/var/run/utmp`文件来获取已登录的用户信息的
`utmp`文件记录了每个用户的登录信息,由一系列`utmp`记录组成,而`utmp`记录的结构定义位于`utmp.h`中
`utmp`记录包含多个字段,如`ut_type`(记录类型)、`ut_pid`(登录进程的PID)、`ut_line`(终端设备名)、`ut_id`(终端名后缀)、`ut_user`(用户名)、`ut_host`(远程登录的主机名)等
通过解析这些字段,`who`命令能够显示详细的用户登录信息
五、`who`命令的扩展应用 除了基本的用户登录信息外,`who`命令还可以与其他命令结合使用,实现更复杂的系统监控和管理任务
例如: - 结合awk命令:可以使用awk命令对who的输出进行进一步处理,提取特定的信息
例如,要提取所有登录用户的用户名,可以使用以下命令: bash who | awk{print $1} - 结合grep命令:可以使用grep命令过滤`who`的输出,只显示特定的用户信息
例如,要显示用户名为`root`的登录信息,可以使用以下命令: bash who | grep root - 结合sort命令:可以使用sort命令对`who`的输出进行排序
例如,要按登录时间排序,可以使用以下命令: bash who -H | sort -k3 六、总结 `who`命令是Linux系统中一个简单但强大的工具,用于显示当前登录到系统的用户信息
它提供了多种选项,可以显示不同类型的信息,如用户登录名、终端信息、登录时间、主机名等
通过解析`/var/run/utmp`文件,`who`命令能够获取详细的用户登录信息,帮助管理员快速了解系统的使用情况
此外,`who`命令还可以与其他命令结合使用,实现更复杂的系统监控和管理任务
无论是系统管理员