Linux / Unix who 命令示例列出系统上的用户
我是 Linux 和 Unix 系统的新用户。如何使用 shell 提示符显示谁登录了我的 Linux 或类 Unix 操作系统?
您需要使用who命令来显示当前登录服务器的用户。
谁命令详细信息 | |
---|---|
描述 | 查找系统中有哪些人 |
类别 | 用户环境 |
难度等级 | 简单的 |
Root 权限 | 不 |
操作系统兼容性 | FreeBSD • Linux • macOS • NetBSD • OpenBSD • Unix • WSL |
预计阅读时间 | 5 分钟 |
此命令对于查找以下信息很有用:
- 上次系统启动的时间。
- 当前运行级别。
- 登录用户列表及更多信息。
目的
显示系统中有哪些人。
句法
基本语法如下:
who who am i who [options] [File] who --help who --version who | grep 'userNameHere'
在哪里,
- 如果没有提供任何非选项,who 将显示每个当前登录用户的以下信息:
- 登录名
- 终端线
- 登录时间
- 远程主机名或 X 显示
- 如果您给出一个非选项参数,who 将使用该参数而不是默认的系统维护文件(如 /var/run/utmp)作为包含登录用户记录的文件的名称。
- 如果给出了两个非选项参数,who 只会打印运行它的用户的条目,前面是主机名。传统上,给出的两个参数是“am i”,如“who am i”。
谁命令例子
要显示当前登录系统的所有用户的列表,请输入:
$ who
示例输出:
$ who -H
要仅显示与 stdin(通常是键盘)关联的主机名和用户,请输入:
$ who -m
要显示由 init 生成的活动进程:
$ who -p
要将用户的消息状态显示为 +、- 或 ?,请输入:
$ who -T
显示或列出已登录的用户
输入命令:
$ who -u
显示上次系统启动时间
要显示上次系统启动的时间,请将-b选项传递给 who 命令:
$ who -b
示例输出:
system boot 2014-01-05 10:02
本例中的输出显示系统自 1 月 5 日 10:02 起启动。
显示系统上的死进程
您需要将-d选项传递给 who 命令:
$ who -d
或
$ who -d -H
示例输出:
NAME LINE TIME IDLE PID COMMENT EXIT pts/1 2014-01-11 09:17 56094 id=ts/1 term=0 exit=0 pts/2 2014-01-05 15:46 11070 id=ts/2 term=0 exit=0 pts/2 2014-01-08 03:31 3614 id=/2 term=0 exit=0 pts/1 2014-01-11 16:54 64559 id=/1 term=0 exit=0 pts/3 2014-01-11 17:13 15818 id=/3 term=0 exit=0 pts/4 2014-01-25 11:02 46807 id=ts/4 term=0 exit=0
显示系统登录流程
要仅显示系统登录过程,请传递-l选项:
$ who -l
或
$ who -l -H
示例输出:
NAME LINE TIME IDLE PID COMMENT LOGIN tty2 2014-01-05 10:03 8750 id=2 LOGIN tty1 2014-01-05 10:03 8748 id=1 LOGIN tty3 2014-01-05 10:03 8752 id=3 LOGIN /dev/ttyS1 2014-01-05 10:03 8747 id=v/tt LOGIN tty4 2014-01-05 10:03 8754 id=4 LOGIN tty5 2014-01-05 10:03 8756 id=5 LOGIN tty6 2014-01-05 10:03 8758 id=6
统计系统上所有登录名和登录用户数
统计所有登录名和登录用户数:
$ who -q
示例输出:
图 02:显示并统计所有登录用户
显示当前运行级别
要显示当前系统运行级别,请输入:
$ who -r
示例输出:
run-level 3 2014-01-05 10:02
您可以-r and -b按如下方式组合选项:
$ who -r -b
示例输出:
system boot 2014-01-05 10:02 run-level 3 2014-01-05 10:02
显示全部
-a与-bdprtTu前面讨论的选项相同:示例
输出:
NAME LINE TIME IDLE PID COMMENT EXIT system boot 2014-01-05 10:02 run-level 3 2014-01-05 10:02 LOGIN tty2 2014-01-05 10:03 8750 id=2 LOGIN tty1 2014-01-05 10:03 8748 id=1 LOGIN tty3 2014-01-05 10:03 8752 id=3 LOGIN /dev/ttyS1 2014-01-05 10:03 8747 id=v/tt LOGIN tty4 2014-01-05 10:03 8754 id=4 LOGIN tty5 2014-01-05 10:03 8756 id=5 LOGIN tty6 2014-01-05 10:03 8758 id=6 root + pts/0 2014-01-27 03:37 . 11149 (10.1.6.120) pts/1 2014-01-11 09:17 56094 id=ts/1 term=0 exit=0 pts/2 2014-01-05 15:46 11070 id=ts/2 term=0 exit=0 pts/2 2014-01-08 03:31 3614 id=/2 term=0 exit=0 pts/1 2014-01-11 16:54 64559 id=/1 term=0 exit=0 pts/3 2014-01-11 17:13 15818 id=/3 term=0 exit=0 pts/4 2014-01-25 11:02 46807 id=ts/4 term=0 exit=0
who 命令选项
选项 | 描述 |
-a | 与 -b -d –login -p -r -t -T -u 相同 |
-b | 上次系统启动时间 |
-d | 打印死进程 |
-H | 打印列标题行 |
-l | 打印系统登录流程 |
-m | 仅与 stdin 关联的主机名和用户 |
-p | 打印由 init 生成的活动进程 |
-q | 所有登录名和登录用户数 |
-r | 打印当前运行级别 |
-t | 打印最后的系统时钟变化 |
-T | 将用户的消息状态添加为 +、- 或? |
-u | 列出已登录的用户 |
相关媒体
本教程还提供简短视频格式:
总结
您了解了 who 命令,该命令显示有关当前登录 Linux 或 Unix 计算机的用户的信息。请使用 man 命令或 help 命令阅读以下手册页:
man who who --help
参见
- /var/run/utmp文件。
- /var/log/wtmp文件。