在 Linux 系统管理中,了解当前登录系统的用户是非常基础但至关重要的一步。无论是排查问题、维护系统,还是观察用户行为,who
和 w
这两个命令都是你不可或缺的工具。
本文将为你详解这两个命令的作用、差异和使用技巧。
一、who
命令:简洁明了的用户列表
✅ 作用:
显示当前登录系统的用户信息。
📌 命令格式:
who [选项]
📋 常见输出示例:
$ who
alice tty1 2025-06-19 08:30
bob pts/0 2025-06-19 09:01 (:0)
🧠 输出含义解释:
- 用户名:正在登录的用户。
- 终端:用户使用的终端类型(本地为 tty,远程为 pts)。
- 登录时间:用户登录的时间。
- 来源:如果是远程连接,会显示来源 IP 或主机名。
🔧 常用选项:
-H
:显示列标题-u
:显示用户闲置时间(idle)
二、w
命令:用户+进程+系统状态全景视图
✅ 作用:
不仅显示当前登录的用户,还会显示他们正在执行的命令,以及系统的整体负载情况。
📌 命令格式:
w [选项] [用户名]
📋 常见输出示例:
$ w
17:04:00 up 3 days, 5:30, 2 users, load average: 0.10, 0.08, 0.02
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
alice tty1 - 08:30 4:12m 0.15s 0.03s -bash
bob pts/0 :0 09:01 1:02 0.20s 0.01s vim test.sh
🧠 输出含义解析:
- 系统信息行:
- 当前时间
- 系统运行时间(up)
- 登录用户数量
- 系统负载(过去1、5、15分钟)
- 用户详细表:
- USER:用户名
- TTY:终端
- FROM:连接来源
- LOGIN@:登录时间
- IDLE:空闲时间
- JCPU:与该终端关联的所有进程的 CPU 时间
- PCPU:当前正在运行进程的 CPU 时间
- WHAT:正在运行的命令
三、who
vs w
:简洁与全面的权衡
比较点 | who |
w |
---|---|---|
主要用途 | 查看当前登录用户 | 查看用户+运行进程+系统负载 |
输出信息量 | 少,结构清晰 | 多,适合深入分析 |
系统负载信息 | ❌ 无 | ✅ 有 |
用户运行命令 | ❌ 无 | ✅ 有 |
使用场景 | 快速查看有哪些用户在线 | 分析系统负载和用户行为 |
四、实用技巧与组合用法
🧪 查询某个用户是否在线:
who | grep alice
🧪 查询用户在运行什么命令:
w alice
🧪 配合 ps
进一步查看进程详情:
ps -u alice
五、小结
- 如果你只想快速了解谁在登录系统:用
who
。 - 如果你想了解系统现状和用户正在干什么:用
w
。 w
可以说是who
的进阶版,它将用户与行为数据、系统负载整合成了一个总览。
掌握这两个命令,不仅是基础操作,更是通向系统管理之路的第一步。下一次,当你登录到服务器,别忘了敲一下 w
,看看你的机器上,正在上演怎样的数字故事。
声明:本文为原创文章,版权归深谋之道所有,欢迎分享本文,转载请保留出处!