侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux who命令用法详解:如何查看当前登录用户信息和系统状态

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命令只能显示当前登录系统的用户信息,如果你想查看其他系统或网络上的用户信息,你需要使用其他命令,如fingerwrwho等。
  • who命令的输出信息可能会随着系统的变化而变化,例如,如果有用户退出或登录系统,或者有用户改变了终端状态,那么who命令的输出就会相应地更新。
  • who命令的选项可以组合使用,例如,如果你想显示当前登录用户的数量和用户名,并且显示各列的标题,你可以使用who -q -H命令。

Linux who命令的快捷键

who命令有一些快捷键,可以让你更方便地使用它。这里我们介绍两个常用的快捷键:

  • Ctrl+C:终止who命令的执行,返回到命令行提示符。
  • Ctrl+L:清除屏幕上的输出内容,重新显示who命令的输出。
0

评论区