为什么当我使用 who | wc -l 时终端会响应“2”

为什么当我使用 who | wc -l 时终端会响应“2”

标题说明了一切。我是计算机上的唯一用户,但当我输入 who | wc -l 时,它响应 2。这是为什么?

答案1

这是因为打开一个终端(物理或虚拟)就算是一个用户登录。所以当你登录账户时,你就登录了一次,当你打开终端时,无论是使用Ctrl++ (以下称为虚拟终端)还是使用Alt++ (以下称为物理终端),你每次登录时都需再次登录一次。tCtrlAltF{1-7}

这在 的输出中清晰地显示出来who。第二列显示用户如何登录。如果您使用虚拟终端登录,您将看到pts/<no>您使用哪些代表/dev/pts登录,哪些代表使用虚拟终端登录。如果您使用物理终端登录,您将看到tty<no>,这代表您使用/dev/tty哪些代表登录。

为了澄清这一点,请看以下情况:

我使用图形界面登录过一次,使用虚拟终端登录过一次,使用物理终端登录过一次,所以输出是:

jobin    tty1         2014-03-31 18:05
jobin    :0           2014-03-31 16:58 (:0)
jobin    pts/1        2014-03-31 17:25 (:0)

第一行表示物理终端登录,第二行表示图形终端登录,第三行表示虚拟终端登录。

所以您看到“2”的原因是因为您已经登录到图形界面以及终端(不太确定您拥有的是物理终端还是虚拟终端)。

答案2

who每行显示当前登录用户的详细信息,如下所示

aditya@aditya-desktop:~$ who
aditya   tty7         2014-03-31 16:45 (:0)
aditya   pts/2        2014-03-31 17:51 (:0)
aditya@aditya-desktop:~$ 

wc -l给出的行数。who|wc -l我们已经将命令通过管道传输。也就是说,我们将的输出转发给who命令wc -lwc -l将测量命令给出的输出中的行数who,即 2。

aditya@aditya-desktop:~$ who|wc -l
2
aditya@aditya-desktop:~$ 

欲了解更多信息,您可以输入以下代码阅读手册man whoman wc

答案3

info coreutils 'who invocation'

   If given no non-option arguments, `who' prints the following
information for each user currently logged on: login name, terminal
line, login time, and remote hostname or X display.

因此,如果您登录了多个地方,而没有其他人登录,则 的输出who | wc -l将是您登录的地方的数量。如果您打开更多终端窗口,您将看到这个数字会增加。如果您在终端窗口中打开更多选项卡,情况也是如此。

如果您是计算机上的唯一用户,并且想要查看系统中当前登录的唯一用户数量,您可以使用:

who is using_my_pc | wc -l

不,这是个玩笑(这很有趣,因为在这种情况下它起作用了)。看看它info coreutils 'who invocation'到底是什么意思。查看系统中当前登录的唯一用户数量的正确方法是:

who | cut -d' ' -f1 | uniq | wc -l

答案4

who命令显示有关当前登录的用户的信息。

avinash@avinash-Lenovo-IdeaPad-Z500:~$ who
avinash  tty7         2014-03-31 16:52 (:0)
avinash  pts/1        2014-03-31 17:59 (:0)

tty7代表上述用户正在运行 X GUI 会话。第二个pts/1代表上述用户也在运行 gnome-terminal 会话。

就像@Aditya 所说的那样,wc -l计算标准输入中的行数。who | wc -l在这个命令中,who 命令的输出被作为第二个wc -l命令的输入。因此,依次wc -l计算标准输入中存在的行数(2)并显示(stdout)最终结果。

要查看已登录的用户数量,请运行带有以下参数的who命令。-q

avinash@avinash-Lenovo-IdeaPad-Z500:~$ who -q
avinash avinash avinash
# users=3

man who

-q, --count
          all login names and number of users logged on

相关内容