Linux 中,使用 w 或 who 命令都可以查看服务器上目前已登录的用户信息,两者的区别在于,w 命令除了能知道目前已登陆的用户信息,还可以知道每个用户执行任务的情况。
首先,介绍一下 w 命令的使用
基本格式
[root@localhost ~]# w [选项] [用户名]
此命令常用选项及含义,如表 1 所示。如果 w 命令后跟 [用户名],则表示只显示此用户的信息。
w 命令的选项及含义
| 选项 | 
含义 | 
| -h | 
不显示输出信息的标题 | 
| -l | 
用长格式输出 | 
| -s | 
用短格式输出,不显示登陆时间,JCPU 和 PCPU 时间 | 
| -V | 
显示版本信息 | 
例
显示当前用户登陆信息。
[root@localhost ~]# w
 13:13:56 up 13:00,  1 user,  load average: 0.08, 0.02, 0.01
USER   TTY    FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root    tty1    -                        11:04       0.00s  0.36s   0.00s  -bash
root    pts/0  192.168.0.108   13:15       0.00s   0.06s   0.02s   w
上面的输出信息中,第一行其实和 top 命令的第一行非常类似,主要显示了当前的系统时间、系统从启动至今已运行的时间、登陆到系统中的用户数和系统平均负载。
平均负载(load average)指的是在 1 分钟、5 分钟、15 分钟内系统的负载状况。
从第二行开始,显示的是当前所有登陆系统的用户信息,第二行是用户信息的各列标题,从第三行开始每行代表一个用户。这些标题的含义如表 2 所示。
w 命令输出信息各列标题及含义
| 标题 | 
含义 | 
| USER | 
登录到系统的用户。 | 
| TTY | 
登录终端。 | 
| FROM | 
表示用户从哪里登陆进来,一般显示远程登陆主机的 IP 地址或者主机名。 | 
| LOGIN@ | 
用户登陆的日期和时间。 | 
| IDLE | 
表示某个程序上次从终端开始执行到现在所持续的时间。 | 
| JCPU | 
和该终端连接的所有进程占用的 CPU 运算时间。 (不包括过去的后台作业时间,但是包括当前正在运行的后台作业所占用的时间)。 | 
| PCPU | 
当前进程所占用的 CPU 运算时间。 | 
| WHAT | 
当前用户正在执行的进程名称和选项。 | 
从 w 命令的输出中已知,Linux 服务器上已经登录了两个 root 用户,一个是从本地终端 1 登录的(tty1),另一个是从远程终端 1 登录的(pts/0),登录的来源 IP 是 192.168.0.108。