手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

who(1)

名称

who - 显示系统上的用户

用法概要

/usr/bin/who [-abdHlmpqrstTu] [file]
/usr/bin/who -q [-n x] [file]
/usr/bin/who am i
/usr/bin/who am I
/usr/xpg4/bin/who [-abdHlmpqrtTu] [file]
/usr/xpg4/bin/who -q [-n x] [file]
/usr/xpg4/bin/who -s [-bdHlmpqrtu] [file]
/usr/xpg4/bin/who am i
/usr/xpg4/bin/who am I

描述

who 实用程序可以列出 UNIX 系统上当前每个用户的用户名、终端行、登录时间、自行上发生活动以来经过的时间和命令解释程序 (shell) 的进程 ID。它将检查 /var/adm/utmpx 文件来获取相关信息。如果指定了 file,则会检查该文件(必须采用 utmpx(4) 格式)。通常,file/var/adm/wtmpx,其中包含自上次创建文件以来所有登录信息的历史记录。

常规输出格式如下:

name [state] line time [idle] [pid] [comment] [exit]

其中:

name

用户的登录名

state

向终端写入数据的能力

line

/dev 中找到的行的名称

time

自用户登录以来的时间

idle

自用户上次活动以来经过的时间

pid

用户的进程 ID

comment

inittab(4) 中的注释行

exit

停用进程的退出状态

选项

支持以下选项:

–a

进程 /var/adm/utmpx 或启用了 –b–d–l–p–r–t–T–u 选项的指定 file。

–b

表示上次重新引导的时间和日期。

–d

显示已过期且未通过 init 重新产生的所有进程。exit 字段针对停用进程显示,并包含停用进程的终止和退出值(由 wait(3C) 返回)。该字段在确定进程终止原因时非常有用。

–H

输出常规输出上方的列标题。

–l

仅列出等待用户登录的系统所在的行。在这种情况下,name 字段为 LOGIN。其他字段与用户条目的字段相同,只是 state 字段不存在。

–m

仅输出有关当前终端的信息。

–n x

接受数字参数 x,用于指定每行显示的用户数。x 必须至少为 1–n 选项只能与 –q 一起使用。

–p

列出当前处于活动状态且之前由 init 产生的其他所有进程。name 字段显示在 /usr/sbin/inittab 中找到的由 init 执行的程序的名称。statelineidle 字段没有意义。comment 字段显示 /usr/sbin/inittab 中产生该进程的行的 id 字段。请参见 inittab(4)

–q

(快速执行 who)仅显示当前登录系统的用户的名称和数目。如果使用了该选项,将忽略其他所有选项。

–r

表示 init 进程的当前 run-level

–s

(缺省值)仅列出 name、line 和 time 字段。

/usr/bin/who

–T

–s 选项相同,只是也写入 state idlepidcomment 字段。state 是以下字符之一:

+

终端允许授予其他用户写入权限。

终端拒绝授予其他用户写入权限。

?

无法确定终端写入访问权限状态。

/usr/xpg4/bin/who

–T

–s 选项相同,只是也写入 state 字段。state 是该选项的 /usr/bin/who 版本下所示字符之一。如果将 –u 选项与 –T 一起使用,会将空闲时间添加到前一种格式的结尾。

–t

表示 root 上次对系统时钟的更改(使用 date 实用程序)。请参见 su(1M)date(1)

–u

仅列出当前登录系统的用户。name 是用户的登录名。line 是在目录 /dev 中找到的行的名称。time 是用户登录的时间。idle 列包含该特定行上自上次发生活动以来经过的小时和分钟数。点 (.) 表示上一分钟在终端上发生了活动,因此当前正在进行。如果经过的时间超过了二十四小时或者自引导以来未曾使用该行,则会将条目标记为 old。该字段在尝试确定某个用户是否在终端上执行操作时非常有用。pid 是用户 shell 的进程 ID。comment 是在 /usr/sbin/inittab(请参见 inittab(4))中找到的与该行关联的注释字段。其中可包含有关终端所在位置、数据集的电话号码、终端类型(如果采用硬接线)等方面的信息。

操作数

支持下列操作数:

am i
am I

在 C 语言环境中,仅限输出描述正在调用的用户,等效于 –m 选项。amiI 必须是单独的参数。

file

指定用来替换 who 在缺省情况下所用登录系统的用户数据库的文件的路径名。

环境变量

有关影响 who 执行的环境变量 LANG、LC_ALL、LC_CTYPE、LC_MESSAGES、LC_TIME 和 NLSPATH 的说明,请参见 environ(5)

退出状态

将返回以下退出值:

0

成功完成。

>0

出现错误。

文件

/usr/sbin/inittab

init 的脚本

/var/adm/utmpx

当前用户和计帐信息

/var/adm/wtmpx

历史用户和计帐信息

属性

有关下列属性的说明,请参见 attributes(5)

/usr/bin/who

属性类型
属性值
可用性
system/core-os

/usr/xpg4/bin/who

属性类型
属性值
可用性
system/xopen/xcu4
接口稳定性
Committed(已确定)
标准
请参见 standards(5)

另请参见

date(1)login(1)mesg(1)init(1M)su(1M)wait(3C)inittab(4)utmpx(4)attributes(5)environ(5)standards(5)

附注

超级用户:关闭单用户状态后,who 将返回提示符。由于 /var/adm/utmpx 在登录时进行更新而且在单用户状态下没有登录信息,因此 who 无法准确地报告该状态。但是,命令 who am i 可以返回正确的信息。