`w` 是 Linux 系统中用于显示当前登录用户及其活动情况的实用命令,基于 `/var/run/utmp` 文件数据生成报告。以下从使用方式、输出解析、高级技巧等方面详细说明:

1. 基础用法
直接执行:输入 `w` 显示所有登录用户的信息,包括用户名、终端、IP地址、登录时间、空闲时间、JCPU/PCPU(进程占用CPU时间)以及当前执行的命令。
指定选项:
- `-h` 隐藏头部信息(第一行系统负载数据)
- `-u` 忽略用户名重复的会话(如多终端登录)
- `-s` 精简格式输出(仅显示用户名、终端、空闲时间、当前命令)
- `-f` 切换显示/隐藏远程主机名(默认显示)
示例:
bash
w -s -f
2. 输出字段详解
USER:登录用户名。
TTY:终端类型(`pts/N` 表示伪终端,`ttyN` 表示物理终端)。
FROM:远程IP地址(本地登录显示空或 `localhost`)。
LOGIN@:登录时间。
IDLE:空闲时间(`0.00s` 表示活跃,`1d` 表示闲置1天)。
JCPU:该终端所有进程占用的总CPU时间。
PCPU:当前进程占用的CPU时间。
WHAT:用户当前执行的命令(如 `-bash` 表示闲置的Shell)。
3. 高级应用
监控特定用户:结合 `grep` 过滤输出(如 `w | grep root`)。
排查异常登录:检查 `FROM` 字段中的异常IP地址。
系统负载分析:输出首行的 `load average` 反映系统1/5/15分钟的平均负载(数值/CPU核心数 >1 表示过载)。
结合 `who` 和 `uptime`:`who` 提供更简略的登录信息,`uptime` 仅显示负载和运行时间。
4. 扩展知识
数据来源:`w` 从 `/var/run/utmp` 读取登录记录,可通过 `last` 命令查看历史登录。
安全性:若 `WHAT` 字段显示异常命令(如 `wget` 或 `curl`),可能需警惕未授权操作。
替代工具:`htop` 或 `top` 提供更详细的进程级监控,而 `w` 侧重于用户会话统计。
5. 实际用例
快速巡检:通过 `w -s` 快速查看活跃用户和命令。
会话管理:根据 `IDLE` 时间决定是否踢出长时间闲置用户(配合 `pkill -KILL -t [TTY]`)。
故障排查:高负载时结合 `WHAT` 字段定位占用资源的进程。
执行 `man w` 可查阅完整手册。

查看详情

查看详情