Linux系统之who命令的基本使用
【摘要】 Linux系统之who命令的基本使用
一、who命令介绍
who 命令在 Linux 系统中用于显示当前登录到系统的用户信息。它可以显示用户的用户名、终端设备、登录时间以及主机名等信息。
二、who命令的使用帮助
2.1 who命令的help帮助信息
- 查询help帮助信息
[root@openEuler-test ~]# who --help
Usage: who [OPTION]... [ FILE | ARG1 ARG2 ]
Print information about users who are currently logged in.
-a, --all same as -b -d --login -p -r -t -T -u
-b, --boot time of last system boot
-d, --dead print dead processes
-H, --heading print line of column headings
-l, --login print system login processes
--lookup attempt to canonicalize hostnames via DNS
-m only hostname and user associated with stdin
-p, --process print active processes spawned by init
-q, --count all login names and number of users logged on
-r, --runlevel print current runlevel
-s, --short print only name, line, and time (default)
-t, --time print last system clock change
-T, -w, --mesg add user's message status as +, - or ?
-u, --users list users logged in
--message same as -T
--writable same as -T
--help display this help and exit
--version output version information and exit
If FILE is not specified, use /var/run/utmp. /var/log/wtmp as FILE is common.
If ARG1 ARG2 given, -m presumed: 'am i' or 'mom likes' are usual.
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Full documentation <https://www.gnu.org/software/coreutils/who>
or available locally via: info '(coreutils) who invocation'
2.2用法解释
- 基本语法
who [选项]... [文件 | 参数1 参数2]
- 选项
选项 | 描述 |
---|---|
-a, --all |
等同于 -b -d --login -p -r -t -T -u ,显示所有信息。 |
-b, --boot |
显示系统最近一次启动的时间。 |
-d, --dead |
显示死掉的进程(通常是已经退出但还没有从 utmp 文件中删除的条目)。 |
-H, --heading |
打印列标题。 |
-l, --login |
显示系统登录进程。 |
--lookup |
通过 DNS 尝试规范主机名。 |
-m |
只显示与标准输入关联的主机名和用户名。 |
-p, --process |
显示由 init 进程生成的活动进程。 |
-q, --count |
显示所有登录名及登录用户的数量。 |
-r, --runlevel |
显示当前的运行级别。 |
-s, --short |
只打印名称、终端和时间(默认行为)。 |
-t, --time |
显示最后一次系统时钟更改的时间。 |
-T, -w, --mesg |
添加用户的终端消息状态(+ 表示允许写入,- 表示禁止写入,? 表示未知)。 |
-u, --users |
列出登录的用户。 |
--message |
同 -T 。 |
--writable |
同 -T 。 |
--help |
显示帮助信息并退出。 |
--version |
输出版本信息并退出。 |
三、who命令的基本使用
3.1 查看当前系统版本
- 查看当前时间的系统版本
[root@openEuler-test ~]# cat /etc/os-release
NAME="openEuler"
VERSION="24.03 (LTS)"
ID="openEuler"
VERSION_ID="24.03"
PRETTY_NAME="openEuler 24.03 (LTS)"
ANSI_COLOR="0;31"
3.2 直接使用who命令
在命令行终端,直接执行who命令,显示当前登录的用户。
[root@openEuler-test ~]# who
root pts/0 2024-10-06 13:21 (192.168.3.241)
3.3 显示所有信息
使用
-a
选项,显示所有信息:包括登录名、终端、登录时间、空闲时间、进程 ID 和主机名。
[root@openEuler-test ~]# who -a
system boot 2024-10-06 13:09
run-level 3 2024-10-06 13:10
LOGIN tty1 2024-10-06 13:10 1087 id=tty1
root + pts/0 2024-10-06 13:21 . 1815 (192.168.3.241)
3.4 显示系统最近一次启动的时间
使用-b选项,显示系统最近一次启动的时间。
[root@openEuler-test ~]# who -b
system boot 2024-10-06 13:09
3.5 只显示登录用户的数量
- 只显示登录用户的数量
[root@openEuler-test ~]# who -q
root root admin
# users=3
3.6 显示当前登录的用户及其相关信息
使用-u选项,列出当前登录用户信息。
[root@openEuler-test ~]# who -u
root pts/0 2024-10-06 13:21 . 1815 (192.168.3.241)
root pts/1 2024-10-06 13:47 . 1988 (192.168.3.241)
admin pts/2 2024-10-06 13:48 . 2187 (192.168.3.89)
3.7 打印出列标题
使用-H选项,打印出列标题。
[root@openEuler-test ~]# who -H
NAME LINE TIME COMMENT
root pts/0 2024-10-06 13:21 (192.168.3.241)
root pts/1 2024-10-06 13:47 (192.168.3.241)
admin pts/2 2024-10-06 13:48 (192.168.3.89)
3.8 显示当前的运行级别
- 显示当前的运行级别
[root@openEuler-test ~]# who -r
run-level 3 2024-10-06 13:10
0:关机(halt)
1:单用户模式(维护模式),仅 root 用户可以登录,通常用于系统维护。
2:多用户模式,但没有网络文件系统(NFS)。
3:多用户文本模式,完整的多用户环境,但没有图形界面。
4:用户自定义,通常未使用。
5:多用户图形模式,启动图形用户界面(GUI)。
6:重启(reboot
四、注意事项
- 确保你有足够的权限:某些系统可能需要 root 权限才能查看所有用户的登录信息。
- 理解输出格式:默认输出包含用户名、终端、登录时间和主机名,使用选项可以更改输出格式。
- 使用
-H
选项添加列标题:这有助于更好地理解输出的每一列代表什么。 - 注意死掉的进程:使用
-d
选项可以显示已经退出但未从 utmp 文件中删除的条目。 - 检查系统启动时间:使用
-b
选项可以查看系统最近一次启动的时间。 - 了解当前运行级别:使用
-r
选项可以显示当前系统的运行级别。 - 查看用户消息状态:使用
-T
或-w
选项可以查看用户的终端消息状态(+ 表示允许写入,- 表示禁止写入)。 - 统计登录用户数量:使用
-q
选项可以快速查看当前登录的用户数量。 - 指定文件路径:如果需要读取特定的 utmp 或 wtmp 文件,可以在命令末尾指定文件路径。
- 结合其他命令使用:可以将
who
的输出通过管道传递给其他命令(如grep
)进行进一步处理。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)