who是显示当前登录到计算机的用户列表的标准 Unix 命令。

Linux系統who命令執行結果

who与命令w有关:w提供相同的信息,但也显示额外的数据和统计信息。

规范 编辑

单一Unix规范(SUS)要求who应列出有关可访问用户的信息。 XSI 扩展也要求应列出用户名、终端、登录时间、进程 ID 和自上次活动以来的时间等其他数据;此外,用于用户信息的备用系统数据库可指定为who的可选参数。

该命令可以附加参数am iam I(即who am i),来调用显示有关当前终端的信息(请参阅命令tty和-m选项,同该调用是等效的)。

用法 编辑

无扩展的SUS仅指定以下的-m-T-u选项,所有其他选项都在XSI扩展中指定:

-a,使用-b,-d,-l,-p,-r,-t,-T和-u处理用于用户信息的系统数据库。
-b,显示系统上次重新启动的时间
-d,显示僵尸进程及相关细节
-H,显示列标题
-l,显示用户可以登录的终端
-m,仅显示有关当前终端的信息
-p,显示活动进程
-q,快速格式,仅显示名称和所有登录用户的数量,禁用所有其他选项;相当于用户命令行实用程序
-r,显示init进程的运行级别。
-s(默认)仅显示名称,终端和时间详细信息
-t,显示系统时钟最后更改的时间
-T,以标准格式显示每个终端的详细信息
-u,显示空闲时间;XSI显示用户登录并显示终端是否最近使用过的信息

其他Unix和类Unix操作系统可能会添加额外的选项。GNU who包含-i选项(同-u类似)和-w选项(显示列出的用户是否接受消息,SUS 在指定-T时显示此消息),但GNU who和BSD版本都省略了上述的一些选项(如-a,-b,-d等);GNU 版本反而使用 -l 来尝试通过 DNS 查验主机名。

输出 编辑

没有扩展名的SUS指定输出格式为“实现定义”(Implementation-defined)。 XSI扩展指定了一种格式,但它没有完全指定: 分隔符和字段长度没有精确指定。 因此,Unix实现中输出的格式差别很大。

另请参见 编辑

外部链接 编辑