Linux系统查看当前登录用户 who与w命令用法
在Linux系统管理中,查看当前谁登录了服务器、他们正在做什么,是日常运维和故障排查的基本功。最常用的两个命令是 who 和 w。虽然它们都读取同一个数据源 /var/run/utmp,但输出的信息粒度和用途却截然不同。 简单来说:想快速知道“谁登进来了”,用 who;想全面了解“谁登进来了、正在干
在Linux系统管理中,查看当前谁登录了服务器、他们正在做什么,是日常运维和故障排查的基本功。最常用的两个命令是 who 和 w。虽然它们都读取同一个数据源 /var/run/utmp,但输出的信息粒度和用途却截然不同。

简单来说:想快速知道“谁登进来了”,用 who;想全面了解“谁登进来了、正在干什么、系统整体负载如何”,就用 w。
为什么 who 命令看不到用户正在运行的命令?
原因在于设计定位。who 命令的职责非常纯粹:它只从 /var/run/utmp 文件中提取登录会话的元数据,比如用户名、使用的终端设备、登录时间以及来源IP地址。它本质上是一个“登录记录快照”查询工具,而非“实时活动监控器”。
- 当你执行
who时,看到的pts/0、tty1等只是终端标识符,它不会告诉你这个终端里运行的是vim还是top。 - 如果需要确认某个登录会话背后具体的shell进程,就得手动配合
ps -t pts/0这样的命令来查询。 - 另外,
who -m和who am i命令输出一致,都只反映当前shell最初的登录上下文,不受后续sudo或su切换用户的影响。但要注意,whoami命令返回的是当前有效用户ID(effective UID),如果用了sudo,这里显示的就是root。
w 命令输出中的 JCPU 和 PCPU 究竟指什么?
这是 w 命令提供的资源消耗视角。JCPU 指的是关联到该终端的所有进程(包括后台任务)自登录以来累计占用的CPU时间,单位是秒。PCPU 则特指当前前台进程占用的CPU时间。关键在于,它们显示的是总耗时,而非实时占用百分比。
- 所以,看到一个用户的
JCPU值很高,并不一定意味着系统此刻正被拖慢。很可能只是该用户之前运行过几个耗时任务(比如大型编译或压缩解压),现在终端已经空闲了。 - 更有参考价值的是
PCPU列。如果某个用户的PCPU值持续大于1秒,并且WHAT列显示为top、find或某个计算密集型命令,这才表明当前存在高负载进程。 - 使用
w -u选项可以忽略w命令自身进程对PCPU计数的微小影响,让显示的数据更“干净”。
远程登录时,FROM 字段显示的是主机名还是IP地址?
默认情况下,系统会尝试显示主机名(前提是DNS能够成功反向解析该IP)。但在实际生产环境中,DNS配置可能不可靠或缺失,这常常导致 FROM 字段显示为短横线 -,或者是一串解析失败的无意义字符。
- 如果在
w的输出里看到FROM列是-或unknown,基本可以判定是DNS反向解析失败了。 who命令默认不显示来源信息,需要显式加上-H选项(部分发行版支持),或者直接使用w -i来强制显示IP地址。- 若希望长期固定显示IP地址以避免混淆,可以将
alias w='w -i'这行命令添加到你的~/.bashrc文件中。
如何排查“用户已登出但 w 仍显示在线”的异常?
这种“幽灵会话”的根本原因,是 /var/run/utmp 文件中的对应条目没有被正确清理。这通常发生在异常断开连接的情况下,比如网络突然中断、SSH客户端进程崩溃,或者用户直接使用 kill -9 杀掉了shell进程,终端未能正常执行退出清理流程。
- 手动直接编辑或清理
/var/run/utmp二进制文件风险很高,一般不建议这么做。 - 更安全的做法是,优先使用
loginctl list-sessions命令(适用于使用systemd的系统)进行交叉验证。它基于cgroup信息,通常比utmp的更新更实时。 - 如果确认是残留的“僵尸”条目,可以先通过
who -u查看空闲时间(idle)过长的会话,确认其已无活动后,再使用pkill -u username命令来清理该用户可能残留的所有进程。
说到底,who 和 w 命令本身并不复杂,真正的挑战在于理解它们背后的数据源——/var/run/utmp 文件的生命周期管理机制。这个文件由 login 程序写入,依赖 logout 流程或特定的内核信号来触发清理。中间任何一个环节断裂,就会导致 w 和 who 给出过时甚至误导性的信息。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















