Linux 中,使用 w 或 who 命令都可以查看服务器上目前已登录的用户信息,两者的区别在于,w 命令除了能知道目前已登陆的用户信息,还可以知道每个用户执行任务的情况。 首先,介绍一
首先,介绍一下 w 命令的使用,w 命令的基本格式如下:
[root@localhost ~]# w [选项] [用户名]
此命令常用选项及含义,如表 1 所示。如果 w 命令后跟 [用户名],则表示只显示此用户的信息。【例 1】显示当前用户登陆信息。
[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
平均负载(load average)指的是在 1 分钟、5 分钟、15 分钟内系统的负载状况。
从第二行开始,显示的是当前所有登陆系统的用户信息,第二行是用户信息的各列标题,从第三行开始每行代表一个用户。这些标题的含义如表 2 所示。
从 w 命令的输出中已知,Linux 服务器上已经登录了两个 root 用户,一个是从本地终端 1 登录的(tty1),另一个是从远程终端 1 登录的(pts/0),登录的来源 IP 是 192.168.0.108。
相比较 w 命令,who 命令只能显示当前登陆的用户信心,但无法知晓每个用户正在执行的命令。 who 命令的基本格式如下:
[root@localhost ~]# who [选项] [file]
需要说明的是,who 命令默认是通过 /var/run/utmp 文件来获取登陆用户信息,但如果通过 file 指定另一个文件,则 who 命令将不再默认读取 /var/run/utmp 文件,而是读取该指定文件来获取信息。有关 who 命令常用选项及含义,如表 3 所示。
who -m
命令等同于 who am i
。
-q
列出在本地系统上的用户和用户数的清单。
-r
显示当前系统的运行级别。
-s
仅显示名称、线路和时间字段信息,这是 who 命令的默认选项。
-u
显示当前每个用户的用户名、登陆终端、登陆时间、线路活动和进程标识。
-T 或 -w
显示 tty 终端的状态,“+”表示对任何人可写,“-”表示仅对 root 用户或所有者可写,“?”表示遇到线路故障。
【例 2】显示系统最新启动日期,以及每个用户的登陆详情、终端状态。
[root@localhost ~]# who <--等同于 who -s
root tty1 2013-06-07 09:53
root pts/0 2013-06-07 09:53 (192.168.0.108)
#用户名 登录终端 登录时间(登录来源IP)