who命令
Linux
who
命令用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。使用权限:所有使用者都可使用。
- 命令格式
who [ -a | -b -d -i -l -m -p -q -r -s -t -u -w -A -H -T -X ] [ File ]
- 命令功能
who
命令显示关于当前在本地系统上的所有用户的信息。显示以下内容: 登录名、tty、登录日期和时间。如果用户是从一个远程机器 登录的,那么该机器的主机名也会被显示出来。
who
命令也能显示自从线路活动发生以来经过的时间、命令解释器(shell)的进程标识、登录、注销、重新启动和系统时钟的变化,还能显示由初始化进程生成的其他进程。
who
命令的一般输出格式如下:
名称 [状态] 线路 时间 [活动] [进程标识] [出口] (主机名)
名称
标识用户的登录名。
状态
表明线路是否对每个用户都是可写的(请参阅 -T 标志)。
线路
标识为在 /dev 目录中查找到线路名。
时间
表示用户登录的时间。
活动
表示自从在那个用户线路上的最后一个活动发生以来的小时和分钟数。这里的一个 .(点)表明在上一分钟里的线路活动。如果线路保持静止已经超过 24 小时或自从最近系统启动以来还没有被使用,项就被标记为旧的线路。
Pid
标识用户登录 shell 的进程标识。
项
标识进程终止状态(请参阅 -d 标志)。要得到关于终止值的更多信息,请参考 wait 子例程 或 /usr/include/sys/signal.h 文件。
出口
标识已结束进程的退出状态(请参阅 -d 标志)。
主机名
指出用户从其进行登录的机器名。
要获取信息,who 命令通常检查 /etc/utmp 文件。如果用 File 参数指定另一个文件,who 命令改为 检查那个文件。这个新文件通常是 /var/adm/wtmp 或 /etc/security/failedlogin 文件。如果 File 参数 指定了不止一个文件名,那么只会使用最后的文件名。 - 命令参数
-a
处理 /etc/utmp 文件或有全部信息的指定文件。等同于指定-bdlprtTu
标志。
-b
指出最近系统启动的时间和日期。
-d
显示没有被 init 重新生成的所有到期的进程。退出字段用于显示死进程并包含死进程的终止和退出值(由 wait 进程返回的)。(此标志用于通过查看应用程序返回的错误号来确定一个进程的结束原因。)
-l
列出任何登录进程。
-m
仅显示关于当前终端的信息。who -m 命令等同于 who am i 和 who am I 命令。
-p
列出任何当前活动的和以前已由 init 生成的活动进程。
-q
打印一份在本地系统上的用户和用户数的快速清单。
-r
显示当前进程的运行级别。
-s
仅列出名称、线路和时间字段。此标志是缺省值; 因此,who 和 who -s 命令是等效的。
-t
显示 root 用户上一次用 date 命令对系统时钟做的更改。如果 date 命令自从系统安装以来还没有被运行过,who -t 命令就不产生输出。
-u 或 -i
显示每个当前用户的用户名、tty、登录时间、线路活动和进程标识。
-A
显示在/etc/utmp文件中的所有记帐项。这些项是通过 acctwtmp 命令生成的。
-H
显示标题。
-T 或 -w
显示tty的状态并如下显示谁能够对 tty 写入:+
对任何人都可写。-
仅对 root 用户或其所有者可写。?
遇到线路故障。
-X
打印每个用户名的所有可用字符,而不是将其截断为前 8 个字符。还将用户名移动到输出的最后一列。
--help
在线帮助
--version
显示版本信息。 - 使用实例
## 显示当前登录系统的用户 $ who root tty7 2014-05-13 12:12 (:0) root pts/0 2014-05-14 17:09 (:0.0) root pts/1 2014-05-14 18:51 (192.168.1.17) root pts/2 2014-05-14 19:48 (192.168.1.17) ## 显示标题栏 $ who -H NAME LINE TIME COMMENT root tty7 2014-05-13 12:12 (:0) root pts/0 2014-05-14 17:09 (:0.0) root pts/1 2014-05-14 18:51 (192.168.1.17) root pts/2 2014-05-14 19:48 (192.168.1.17) ## 显示用户登录来源 $ who -l -H NAME LINE TIME IDLE PID COMMENT LOGIN tty4 2014-05-13 12:11 852 id=4 LOGIN tty5 2014-05-13 12:11 855 id=5 LOGIN tty2 2014-05-13 12:11 862 id=2 LOGIN tty3 2014-05-13 12:11 864 id=3 LOGIN tty6 2014-05-13 12:11 867 id=6 LOGIN tty1 2014-05-13 12:11 1021 id=1 ## 显示终端属性 $ who -T -H NAME LINE TIME COMMENT root + tty7 2014-05-13 12:12 (:0) root + pts/0 2014-05-14 17:09 (:0.0) root - pts/1 2014-05-14 18:51 (192.168.1.17) root - pts/2 2014-05-14 19:48 (192.168.1.17) ## 只显示当前用户 $ who -m -H NAME LINE TIME COMMENT root pts/1 2014-05-14 18:51 (192.168.1.17) ## 精简模式显示 $ who -q root root root root # users=4