Go to main content

手册页部分 1:用户命令

退出打印视图

更新时间: 2018年8月8日 星期三
 
 

who(1)

名称

who - 显示系统上的用户

用法概要

/usr/bin/who [-a | --all] [
-b | --boot] [-d | --dead
]
                   [-H | --heading] [
-l | --login] [--lookup] [
-m]
                   [-p | --process] [
-q | --count] [-r | --runlevel
]
                   [-s | --short] [
-t | --time] 
                   [-T | -w | --mesg
 | --message | --writable]
                   [-u | --users] [
file]
/usr/bin/who -q | --count
 [-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(5) 格式)。通常,file/var/adm/wtmpx ,其中包含自上次创建文件以来所有登录信息的历史记录。

常规输出格式如下:

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

其中:

name

用户的登录名

state

向终端写入数据的能力

line

/dev 中找到的行的名称

time

自用户登录以来的时间

idle

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

pid

用户的进程 ID

comment

inittab(5) 中的注释行

exit

停用进程的退出状态

选项

/usr/bin/who 支持以下选项:

–a, –-all

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

–b, –-boot

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

–d, –-dead

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

–H, –-heading

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

–l, –-login

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

–-lookup

在配置的名称服务中执行主机查找,以查找主机的标准化名称,即定义的第一个名称(请参见“附注”部分)。

–m

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

–n x

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

–p, –-process

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

–q, –-count

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

–r, –-runlevel

表示 init 进程的当前 run-level

–s, –-short

(缺省值)仅列出 name linetime 字段。

–T, –mesg, –-message

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

+

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

-

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

?

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

–t, –-time

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

–u, –-users

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

–w, –-writable

–T 选项相同

/usr/xpg4/bin/who

/usr/xpg4/bin/who 支持以下选项:

–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

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

–p

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

–q

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

–r

表示 init 进程的当前 run-level。

–s

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

–T

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

–t

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

–u

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

操作数

支持下列操作数:

am i
am I

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

file

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

环境变量

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

退出状态

将返回以下退出值:

0

成功完成。

>0

出现错误。

文件

/usr/sbin/inittab

init 的脚本

/var/adm/utmpx

当前用户和计帐信息

/var/adm/wtmpx

历史用户和计帐信息

属性

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

/usr/bin/who

属性类型
属性值
可用性
system/core-os
接口稳定性
Committed(已确定)

/usr/xpg4/bin/who

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

另请参见

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

附注

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

–-lookup 选项用于查询配置的名称服务,以尝试查找 utmpx 条目中所指定主机名的所谓的标准化名称。这样将返回由 getaddrinfo(3C) 函数返回的第一个名称,该名称与 AI_CANONNAME 提示一起提供。