1.命令作用
打印当前登录用户的信息(Print information about users who are currently logged in.)
2.命令语法
Usage: who [OPTION]... [ FILE | ARG1 ARG2 ]
3.参数详解
OPTION:
- -a, --all,与'-b -d --login -p -r -t -T -u'相同,多个参数的合集
- -b, --boot,最后一次系统启动时间
- -d, --dead,打印死进程
- -H, --heading,打印每列的标题行
- -l, --login,打印系统登录流程
- --lookup,尝试通过DNS规范化主机名
- -m,仅显示当前终端关联的登录用户信息
- -p, --process,打印init生成的活动进程
- -q, --count,所有登录名和登录用户的数量
- -r, --runlevel,打印当前运行级别
- -s, --short,只打印姓名、总端设备、登录时间和注释(默认)
- -t, --time,打印最后一次系统时钟更改
- -T, -w, --mesg,显示添加用户的消息状态为+,-或?;分别代表允许/禁止/不支持或无法确定
- -u, --users,登录用户列表
- --message,和-T一样
- --writable,和-T一样
- --help,输出版本信息并退出
- --version,输出版本信息并退出
- 如果不指定"FILE",则默认为/var/run/utmp(记录当前登录用户信息);FILE常用/var/log/wtmp(记录历史登录信息的常用文件,包含登录/注销时间等);who、w命令默认使用的是/var/run/utmp;last命令默认使用的是/var/log/wtmp。
- 如果给定ARG1 ARG2两个参数,会默认启用-m参数,常见用例who am i、who mom likes。
- who am i,显示当前终端关联的用户会话
- who mom likes,功能类似,但语义化设计(实际效果与who -m相同)
4.常用用例
4.1.常用的信息输出解释
[root@node1 Desktop]# who -uH
NAME LINE TIME IDLE PID COMMENT
root :0 2025-06-09 01:39 ? 10165 (:0)
root pts/0 2025-06-09 01:40 . 11005 (192.168.118.1)
root pts/1 2025-06-09 04:35 00:11 13601 (192.168.118.1)
[root@node1 Desktop]#
说明:
-u: 登录的用户名列表(比who直接输出的内容多IDLE、PID)
-H: 显示列名称抬头(用户名NAME、终端设备LINE、登录时间TIME、用户空闲时间IDLE、用户SHELL进程ID PID、终端来源注释COMMENT)
NAME: 当前登录该服务器的用户名称
LINE: 终端设备
:0表示图形界面登录(X Window会话);
ttyN表示物理终端(本地控制台);
pts/N表示伪终端登录(SSH/Telnet远程连接);
TIME: 登录时间,精确到分钟
IDLE: 用户空闲时间
?表示图形界面(无法检测空闲状态)
.表示1分钟以内有活动
00:11表示空闲11分钟
old表示大空闲于24小时
PID: 用户SHELL进程ID
COMMENT: 终端来源注释
(:0)表示本地图形界面会话
(192.168.118.1)表示远程登录IP地址
空值表示本地文本终端
4.2.输出更多详细的信息
[root@node1 ~]# who -aH
NAME LINE TIME IDLE PID COMMENT EXIT
system boot 2025-06-09 01:38
run-level 5 2025-06-09 01:38
root ? :0 2025-06-09 01:39 ? 10165 (:0)
pts/0 2025-06-09 01:39 0 id=/0 term=0 exit=0
root + pts/0 2025-06-09 01:40 . 11005 (192.168.118.1)
root + pts/1 2025-06-09 04:35 00:35 13601 (192.168.118.1)
pts/2 2025-06-09 04:34 13481 id=ts/2 term=0 exit=0
[root@node1 ~]#
说明:(在4.1基础上说明)
system boot: 系统启动时间
run-level: 运行级别(5表示图形模式)
+/-/?: 消息接收状态,分别表示允许/禁止/终端设备不支持消息功能或状态无法确定
无用户名称的两行是死进程(dead processes),可以使用who -d查看
4.3.仅打印最后一次系统启动时间
[root@node1 ~]# who -b
system boot 2025-06-09 05:58
[root@node1 ~]#
4.4.仅打印当前总端关联的信息
[root@node1 ~]# who -Hm
NAME LINE TIME COMMENT
root pts/0 2025-06-09 06:07 (192.168.118.1)
[root@node1 ~]# who -m
root pts/0 2025-06-09 06:07 (192.168.118.1)
[root@node1 ~]# who am i
root pts/0 2025-06-09 06:07 (192.168.118.1)
[root@node1 ~]# who mom likes
root pts/0 2025-06-09 06:07 (192.168.118.1)
[root@node1 ~]#
4.5.仅打印所有登录名和总数量
[root@node1 ~]# who -q
root root root root
# users=4
[root@node1 ~]#
4.6.仅打印运行级别
[root@node1 ~]# who -r
run-level 5 2025-06-09 05:58
[root@node1 ~]#
4.7.打印简短信息(默认)
[root@node1 ~]# who -s
root pts/0 2025-06-09 06:07 (192.168.118.1)
root pts/1 2025-06-09 06:11 (192.168.118.1)
root :0 2025-06-09 06:03 (:0)
root pts/2 2025-06-09 06:11 (192.168.118.1)
[root@node1 ~]# who
root pts/0 2025-06-09 06:07 (192.168.118.1)
root pts/1 2025-06-09 06:11 (192.168.118.1)
root :0 2025-06-09 06:03 (:0)
root pts/2 2025-06-09 06:11 (192.168.118.1)
[root@node1 ~]#
4.8.显示用户的消息状态
[root@node1 ~]# who
root pts/0 2025-06-09 06:07 (192.168.118.1)
root pts/1 2025-06-09 06:11 (192.168.118.1)
root :0 2025-06-09 06:03 (:0)
root pts/2 2025-06-09 06:11 (192.168.118.1)
[root@node1 ~]# who -T
root + pts/0 2025-06-09 06:07 (192.168.118.1)
root + pts/1 2025-06-09 06:11 (192.168.118.1)
root ? :0 2025-06-09 06:03 (:0)
root + pts/2 2025-06-09 06:11 (192.168.118.1)
[root@node1 ~]#