在AIX操作系统中,who命令是一个常用的系统管理工具,用于显示当前登录到系统的用户信息,通过该命令,管理员可以实时监控系统的用户活动,了解哪些用户正在使用系统、从哪里登录以及登录时间等关键信息,以下将详细介绍AIX系统中who命令的使用方法、输出选项、实际应用场景及注意事项。

who命令的基本用法
在AIX终端中直接输入who
命令并按回车,系统会默认显示当前所有登录用户的信息,每行包含一个用户的记录,默认输出通常包括四个字段:用户名、终端设备、登录时间和远程主机名(如果适用)。
user1 pts/0 2023-10-01 10:30 (192.168.1.100)
user2 console 2023-10-01 09:15
上述输出表示用户user1通过pts/0终端于10:30从IP地址192.168.1.100登录,而用户user2直接在控制台终端登录,需要注意的是,AIX系统中的终端类型可能是console
(物理控制台)、pts/
(伪终端,通常用于SSH或telnet登录)或tty/
(传统终端设备)。
who命令的常用选项
AIX的who命令支持多种选项,用于定制输出内容和格式,以下是常用选项的详细说明:
-
-H
或--heading
显示列标题,使输出更易读。(图片来源网络,侵删)NAME LINE TIME IDLE PID COMMENT user1 pts/0 2023-10-01 10:30 00:15 12345 (192.168.1.100)
此时输出包含用户名、终端、登录时间、闲置时间、进程ID及备注信息。
-
-u
或--users
显示用户闲置时间(idle time)和登录进程ID(PID),闲置时间表示用户最后一次操作终端后经过的时间,若为表示当前正在使用终端,old
表示闲置超过24小时。user1 pts/0 2023-10-01 10:30 . 12345 user2 pts/1 2023-10-01 08:00 old 12346
-
-l
或--login
显示所有登录会话的信息,包括系统启动时间、运行级别等系统级信息。Oct 1 08:00 system boot Oct 1 08:00 run-level 3 user1 pts/0 2023-10-01 10:30
-
-m
或--mesg
仅显示当前终端的用户信息,相当于who am i
的简化版。(图片来源网络,侵删)user1 pts/0 2023-10-01 10:30 (192.168.1.100)
-
-q
或--count
仅显示登录用户数量和用户名列表,适用于快速统计在线用户数。# users=2 user1 user2
-
-b
或--boot
显示系统最后一次启动的时间。system boot 2023-10-01 08:00
-
-r
或--runlevel
显示当前系统的运行级别。run-level 3 Oct 1 08:00
who命令的输出字段解析
AIX的who命令输出字段可能因选项不同而有所变化,以下是常见字段的含义:
字段名 | 说明 |
---|---|
NAME | 用户名 |
LINE | 终端设备名(如console、pts/0) |
TIME | 登录时间(格式为“月 日 时:分”) |
IDLE | 闲置时间(表示活跃,old 表示闲置超过24小时) |
PID | 登录进程的ID |
COMMENT | 备注信息,通常包含远程主机名或IP地址 |
实际应用场景
-
安全审计
管理员可通过who -u
命令监控用户登录状态,发现异常闲置或非工作时间登录的账户,若发现某用户闲置时间超过24小时(显示为old
),可能需要提醒用户安全退出或检查账户是否被占用。 -
故障排查
当用户反馈无法登录时,可通过who
命令检查终端是否被其他进程占用,若显示某终端被用户A占用,而用户B无法使用,可能是终端资源冲突或权限问题。 -
资源管理
在多用户系统中,who -q
可快速统计在线用户数,帮助管理员评估系统负载,若用户数过多,可能需要限制新登录或提醒用户及时退出。 -
日志记录
结合who
命令的输出与系统日志(如/var/adm/wtmp
),可以追溯历史登录记录,用于安全事件分析或用户行为审计。
注意事项
-
权限要求
who命令无需root权限即可执行,但普通用户只能查看自己的登录信息(通过who am i
),而管理员可查看所有用户信息。 -
日志文件依赖
who命令的输出依赖于系统日志文件(如/var/adm/utmp
和/var/adm/wtmp
),若这些文件被误删或损坏,命令可能无法显示正确信息。 -
终端类型差异
AIX系统中,物理终端(console)与虚拟终端(pts/)的显示方式不同,需注意区分,直接连接主机的用户显示为console
,而远程登录用户显示为pts/
及IP地址。 -
闲置时间计算
闲置时间基于用户终端的最后输入时间,若用户仅打开终端未操作,闲置时间会持续增长,需结合实际情况判断是否为异常。
相关问答FAQs
Q1: 如何通过who命令查看某个特定用户的登录状态?
A: 可以结合grep
命令过滤特定用户的信息,查看用户user1的登录状态,执行:who | grep user1
,若需更详细的信息(如闲置时间),可使用who -u | grep user1
。
Q2: 为什么执行who命令时,部分用户的终端显示为“?”?
A: 终端显示为“?”通常表示系统无法识别该用户的登录来源,可能原因包括:远程主机名无法解析(如DNS配置问题)、用户通过非标准方式登录(如某些脚本或程序直接调用login),或日志文件记录不完整,建议检查网络配置或登录服务日志(如/var/adm/ras/authlog
)进一步排查。