Linux who命令介绍
who命令是英文单词who的缩写,意思是“谁”。它可以用来查看当前登录系统的用户信息,包括用户名、终端设备、登录时间、登录位置等。它还可以用来统计当前系统的用户数,或者显示某个用户是否在线。who命令是一个非常实用的命令,它可以帮助我们了解系统的使用情况,以及与其他用户进行交流。
适用的Linux版本
who命令是一个标准的Linux命令,它适用于大多数的Linux发行版,如Ubuntu、Debian、Fedora、CentOS等。如果你的系统没有安装who命令,你可以使用以下命令来安装它:
- 对于基于Debian或Ubuntu的系统,使用
apt-get install coreutils
命令。 - 对于基于Fedora或CentOS的系统,使用
yum install coreutils
命令。 - 对于基于Arch Linux的系统,使用
pacman -S coreutils
命令。
安装完成后,你就可以使用who命令了。
Linux who命令的基本用法
who命令的语法格式如下:
who [选项] [文件]
其中,选项是可选的参数,用来指定显示的信息或操作方式。文件是可选的参数,用来指定要读取的文件,默认为/var/run/utmp
文件,该文件记录了当前登录系统的用户信息。
Linux who命令的常用选项说明
who命令有很多选项,但是我们只介绍20个最常用的选项,如下表所示:
选项 | 说明 |
---|---|
-a | 显示所有信息,相当于-bdlprTtu |
-b | 显示上次系统重启的时间 |
-d | 显示死掉(dead)的进程 |
-H | 显示各列的标题 |
-i | 显示空闲时间(idle time),即用户最后一次输入到现在经过的时间 |
-l | 显示登录(login)用户 |
-m | 只显示与当前终端相连的用户 |
-p | 显示进程(process)ID |
-q | 只显示当前登录用户的数量和用户名 |
-r | 显示运行等级(run level) |
-s | 只显示用户名、终端设备和登录时间,默认选项 |
-T | 显示终端状态信息(+表示可写,-表示不可写,?表示未知状态) |
-u | 显示用户登录后执行的进程 |
--help | 显示帮助信息 |
--version | 显示版本信息 |
Linux who命令的常见技巧
如何查看某个用户是否在线?
如果你想知道某个用户是否在线,你可以使用以下命令:
who | grep 用户名
其中,grep
是一个文本搜索工具,它可以从输入中筛选出包含指定字符串的行。如果输出为空,则表示该用户不在线;如果输出有内容,则表示该用户在线,并显示其相关信息。
如何查看当前系统有多少个用户在线?
如果你想知道当前系统有多少个用户在线,你可以使用以下命令:
who | wc -l
其中,wc
是一个统计工具,它可以计算输入中有多少行、单词和字符。加上-l
选项后,它只输出行数。这样,我们就可以得到当前系统的用户数。
Linux who命令的实例
下面我们给出一些who命令的实例,以便你更好地理解和使用它。
实例1:显示当前登录系统的用户信息
命令:
who
输出:
[linux@bashcommandnotfound.cn ~]$ who
alice tty1 2023-10-24 14:00
bob pts/0 2023-10-24 14:05 (192.168.1.100)
charlie pts/1 2023-10-24 14:10 (192.168.1.101)
解释:
这个命令显示了当前登录系统的用户信息,包括用户名、终端设备、登录时间和登录位置(如果是远程登录的话)。我们可以看到,有三个用户在线,分别是alice、bob和charlie。alice是本地登录的,使用的是tty1终端;bob和charlie是远程登录的,使用的是pts/0和pts/1终端,它们的IP地址分别是192.168.1.100和192.168.1.101。
实例2:显示当前系统的运行等级和重启时间
命令:
who -r -b
输出:
[linux@bashcommandnotfound.cn ~]$ who -r -b
run-level 5 2023-10-24 13:55
reboot system boot 2023-10-24 13:55
解释:
这个命令显示了当前系统的运行等级和重启时间。运行等级是一个数字,表示系统的运行模式,不同的运行等级有不同的功能。一般来说,运行等级0表示关机,运行等级1表示单用户模式,运行等级2表示多用户模式(无网络),运行等级3表示多用户模式(有网络),运行等级4表示自定义模式,运行等级5表示图形界面模式,运行等级6表示重启。我们可以看到,当前系统的运行等级是5,表示使用图形界面模式;重启时间是2023-10-24 13:55,表示系统在这个时间进行了重启。
实例3:显示当前登录用户的数量和用户名
命令:
who -q
输出:
[linux@bashcommandnotfound.cn ~]$ who -q
alice bob charlie
# users=3
解释:
这个命令只显示了当前登录用户的数量和用户名。我们可以看到,有三个用户在线,分别是alice、bob和charlie。在最后一行,还显示了用户数为3。
实例4:显示各列的标题和终端状态信息
命令:
who -H -T
输出:
[linux@bashcommandnotfound.cn ~]$ who -H -T
NAME LINE TIME IDLE PID COMMENT EXIT
alice tty1 2023-10-24 14:00 . 1234
bob pts/0 2023-10-24 14:05 . 2345 (192.168.1.100) +
charlie pts/1 2023-10-24 14:10 . 3456 (192.168.1.101) +
解释:
这个命令显示了各列的标题和终端状态信息。标题栏包括了用户名、终端设备、登录时间、空闲时间、进程ID、注释和退出码。终端状态信息用+、-或?来表示,+表示可写,-表示不可写,?表示未知状态。我们可以看到,bob和charlie的终端状态都是+,表示他们可以接收其他用户发送的消息;alice的终端状态没有显示,可能是因为她使用的是本地终端。
Linux who命令的注意事项
- who命令只能显示当前登录系统的用户信息,如果你想查看其他系统或网络上的用户信息,你需要使用其他命令,如
finger
、w
、rwho
等。 - who命令的输出信息可能会随着系统的变化而变化,例如,如果有用户退出或登录系统,或者有用户改变了终端状态,那么who命令的输出就会相应地更新。
- who命令的选项可以组合使用,例如,如果你想显示当前登录用户的数量和用户名,并且显示各列的标题,你可以使用
who -q -H
命令。
Linux who命令的快捷键
who命令有一些快捷键,可以让你更方便地使用它。这里我们介绍两个常用的快捷键:
- Ctrl+C:终止who命令的执行,返回到命令行提示符。
- Ctrl+L:清除屏幕上的输出内容,重新显示who命令的输出。
评论区