Linux 中的 who
命令是一个命令行实用程序,用于显示当前登录系统的用户信息。它能让你快速了解哪些用户登录了系统以及他们在做什么。
who
命令的输出通常包括用户名、终端名称(tty/pts)、登录日期和时间,以及用户的远程主机名称(如果是从远程位置登录)。
who
命令的一般语法:
$ who [OPTIONS...]
1. 显示所有用户信息
who -a
使用 -a
选项可以查看登录到当前系统的每个用户的所有详细信息。
示例:
下面是 who -a
命令可能显示的输出示例:
system boot 2023-07-09 08:15 run-level 5 2023-07-09 08:15 LOGIN tty1 2023-07-09 08:15 420 id=tty1 username + pts/0 2023-07-09 10:18 . 1025 (192.168.1.10)
在此示例中:
system boot 2023-07-09 08:15
显示系统上次启动的时间。run-level 5 2023-07-09 08:15
显示系统当前的运行级别以及上次更改的时间。运行级别 5 通常表示系统处于图形用户界面的多用户模式。LOGIN tty1 2023-07-09 08:15 420 id=tty1
显示指定时间在终端 tty1 上启动的登录进程。数字420
是登录进程的进程 ID,id=tty1
是终端的标识符。username + pts/0 2023-07-09 10:18 . 1025 (192.168.1.10)
显示名为 username 的用户在指定时间登录了伪终端pts/0
。+ 号表示允许用户接收信息。点(.
)表示用户处于活动状态。数字1025
是用户 shell 的进程 ID,(192.168.1.10
) 是用户登录的远程主机的 IP 地址。
2. 显示系统最后一次启动时间
who -b
使用带有 -b
选项的 who
命令打印系统最后一次启动时间。
示例:
下面是 who -b
命令的输出示例:
system boot 2023-07-09 08:17
在这个例子中:
system boot
表示所提供的信息与系统启动时间有关。2023-07-09 08:17
是系统最后一次启动的日期和时间。
3. 列出所有登录用户
who -q
该命令只显示已登录用户的名称和已登录用户的总数。选项 -q
代表 “快速”。
示例:
下面是 who -q
命令的输出示例:
username1 username2 username3 # users=3
在此示例中:
username1
,username2
, 和username3
是当前登录系统的用户名。# users=3
表示当前登录系统的用户总数。
4. 检查用户的写入权限
who -T
Linux 中的 who -t
命令用于显示上次系统启动时间。选项 -t
代表 “时间”。
示例:
让我们输入 who -T
命令,在终端中显示用户状态。
system boot 2023-07-09 08:15
在这个例子中:
system boot
表示系统最后一次启动的时间。2023-07-09 08:15
是系统最后一次启动的日期和时间。
5. 显示所有死亡进程
who -d
Linux 中的 who -d
命令用于显示已登录的用户,但也包括由用户启动但当前处于 “死亡” 状态的进程。这些进程由登录用户启动,但已不再与用户会话相连。
示例:
输入带有 -d
选项的 who
命令,显示所有死亡进程的详细信息。
username pts/0 2023-07-09 10:18 (192.168.1.10) username pts/1 2023-07-09 10:20 . 12345
在本例中:
- 第一行是普通用户会话,类似于
who
命令的输出。 - 第二行代表一个 “死亡” 进程。第四列中的
.
表示该进程不再与用户会话相连。最后的数字12345
是死亡进程的进程 ID(PID)。
6. 显示当前用户的信息
who -m
Linux 中的 who -m
命令用于显示当前终端的信息。-m
选项代表 “mesg”,是 “message” 的缩写。它只显示与当前终端有关的信息。
示例:
下面是 who -m
命令的输出示例:
username pts/0 2023-07-09 10:18
在此示例中:
username
是登录用户的名称。pts/0
是终端名称。pts
代表伪终端从属设备。如果用户通过物理终端登录,则应为tty
(电传打字机)。2023-07-09 10:18
是用户登录的日期和时间。
7. 显示 INIT 进程产生的所有活动进程
who -p
who -p
命令显示 init 系统生成的活动进程。不过,并非所有类 Unix 操作系统都提供此选项。
例如:
在可以使用该选项的系统上,可能会显示类似下面的输出:
run-level 3 2023-07-09 10:18
本例中:
run-level 3
表示系统当前的运行级别。运行级别是类似 Unix 的操作系统(如 Linux)运行时的一种状态或模式。不同的运行级别有不同的用途,并用数字表示。例如,运行级别 3 通常表示系统处于联网的多用户模式(具体含义因系统而异)。2023-07-09 10:18
是设置当前运行级别的日期和时间。
8. 显示当前 runlevel
who -r
Linux 中的 who -r
命令显示系统当前的运行级别。运行级别是系统的一种状态,它定义了用户可以使用哪些服务和资源。
例如:
run-level 3 2023-07-09 10:18
在此示例中:
run-level 3
表示系统当前的运行级别。在本例中,运行级别是 3,这通常意味着系统处于多用户模式,可以联网(根据具体的 Linux 发行版本,运行级别会略有不同)。2023-07-09 10:18
是当前运行级别最后一次更改的日期和时间。
更多 Linux 命令
下面罗列了最常见的一些 Linux 命令,您可以根据自己的需要查阅对应命令的详细解析:
目录操作 | rmdir · cd · pwd · exa · ls |
文件操作 | cat · cp · dd · less · touch · ln · rename · more · head |
文件系统操作 | chown · mkfs · locate |
网络 | ping · curl · wget · iptables · mtr |
搜索和文本处理 | find · grep · sed · whatis · ripgrep · fd · tldr |
系统信息和管理 | env · history · top · who · htop · glances · lsof |
用户和会话管理 | screen · su · sudo · open |
此外,我们还整理 Linux 命令行大全,以帮助大家全面深入地学习 Linux。
评论留言