作为一名系统管理员,我们需要弄清楚在一个特定的时间点都有谁活跃在系统上。必须严密监视我们的服务器。但是,我们当然不可能一天24小时都盯着系统。在linux系统中,我们可以使用who命令查看登录者信息。
什么是 who 命令
who命令能够打印 当前都有谁登录到系统中 的相关信息 。who命令只会显示真正登录到系统中的用户。它不会显示那些通过su命令切换用户的登录者。
如何使用who命令
在大多数linux发行版中,who命令都是默认安装上的。想使用该命令,只需在控制台敲命令就行了。不带选项的话,运行该命令产生默认输出。
$ who
如何理解输出:
- 第一列显示用户名称
- 第二列显示用户连接方式。Tty意味着用户直接连接到电脑上,而pts意味着远程登录。
- 第三、四列分别显示日期和时间
- 第五列显示用户登录IP地址。
使用带参数的who命令
Who命令有一些参数用于调整输出。以下是常用的例子。
显示上一次重新启动的时间和日期
使用 -b 选项
$ who -b
可以看到系统启动是在2013年12月21日,下午3:52。
显示初始化进程的当前运行级别
使用 -r 选项,who命令会打印出初始化进程的当前运行级别
$ who -r
输出显示2013年12月21日,下午3:52系统以 级别2 开始运行。
为每一列添加标题
使用 -H 选项为每一列添加标题
$ who -H
只打印当前运行终端的相关信息
可以使用-m选项。
$ who -m
对当前登录用户数量计数
如果系统同时有多人登录在线,-q 选项协助你完成计数功能。
$ who -q
附加空闲时间和PID信息
默认情况下,who命令不会打印空闲时间和PID信息。如果打算显示这些信息,使用-u选项。不要忘记使用 -H选项让显示的信息更加简单易读。
$ who -u -H
空闲时间 包含了最近最后一次活动以来消逝的时间. 所以,00:13 意思是 用户leni已经13分钟没执行过命令了. (.)符号 是指该终端过去的一分钟有过活动。在那期间,我们称之为 “current” 。PID 是用户shell程序的进程ID号。
显示登录进程
使用-l选项
$ who -l
第一列只显示系统登录守护进程的名字。上面截图中的数字 967, 971等是进程ID。
显示所有信息
使用-a选项会显示所有信息。例如:
$ who -a
总结
你会发现 who 命令跟 w 命令在某些方面有些相像。不要为此感到疑惑,为什么linux要实现这些在功能上相近的命令。你可以使用你觉得最适合你的或者适用于某种场合的命令。请查阅who命令手册了解更多详细信息。
Linux命令之who – 查看当前登录用户 http://www.linuxidc.com/Linux/2011-04/34764.htm
Linux C编程的小例子——实现who命令(第二版) http://www.linuxidc.com/Linux/2014-01/94578.htm
Linux who命令参数及用法详解 http://www.linuxidc.com/Linux/2012-01/52137.htm