在 linux 中输入我是谁时,pts/0 和 (:0.0) 是什么

Sag*_*lvi 21 command-line rhel kernel

当我输入命令时:

[root@degeneration Desktop]# who am i 
root     pts/0        2013-04-12 15:08 (:0.0)
Run Code Online (Sandbox Code Playgroud)

什么是 pts/0 以及 (:0.0) 是什么意思?

slm*_*slm 22

pts/0告诉您用户登录的是哪个“伪终端”。在这种情况下,它是终端 #0。"(:0.0)" 告诉您正在使用哪个主机名和显示。

who am i是 command 的别名who -m。请参阅手册页了解 who。您还可以在此处阅读有关该who命令的信息

输出肯定会让 Unix 新手感到困惑。

例子

显示-mam i

[root@grinch]$ who am i
root     pts/4        2013-04-12 07:10 (greeneggs.mydom.net)
[root@grinch]$ who -m
root     pts/4        2013-04-12 07:10 (greeneggs.mydom.net)
Run Code Online (Sandbox Code Playgroud)

连接到某个远程系统

[sam@munger ~]$ who am i
sam      pts/0        2013-04-12 07:19 (192.168.1.7)
Run Code Online (Sandbox Code Playgroud)

在我的笔记本电脑本地

[saml@greeneggs ~]$ who am i
saml     pts/1        2013-04-11 16:41 (:0.0)
Run Code Online (Sandbox Code Playgroud)

仍然可能让您感到困惑的最后一点是:0.0. 这就是 X Windows 表示用户所在的“显示器”的方式。第一个“0”表示您在哪个显示器/设备上,第二个“0”表示您在哪个虚拟显示器上。

这可以追溯到计算机价格昂贵的时代,因此多个人可能同时在同一台计算机上工作。我不会担心,只要记住它要么是“:0.0”,要么可能是“:0”。环境变量“DISPLAY”和命令xhost使用“:0.0”值。

您可以在此处阅读有关 Unix 中远程显示的更多信息。

whoami 对比 who am i

他们不是同一个命令吗?不,它们是不同的:

[saml@grinchy ~]$ ls -l /usr/bin/who /usr/bin/whoami
-rwxr-xr-x 1 root root 49432 Nov  3  2010 /usr/bin/who
-rwxr-xr-x 1 root root 26280 Nov  3  2010 /usr/bin/whoami
Run Code Online (Sandbox Code Playgroud)

他们的输出也完全不同;whoami只显示您的有效用户 ID,同时who am i显示有关终端的连接信息:

[saml@grinchy ~]$ who am i
saml     pts/0        2013-04-11 16:41 (:0.0)

[saml@grinchy ~]$ whoami
saml
Run Code Online (Sandbox Code Playgroud)

请参阅此处whoami手册页。

  • 不,不是,请阅读手册页! (4认同)

sup*_*er0 7

这里引用。

pts代表伪终端从站。终端(或控制台)传统上是您坐下来打字的键盘/屏幕组合。旧的 UNIX 盒子后面会挂着几十个,所有这些都用数英里的电缆连接。伪终端仅提供相同的功能而无需硬件。换句话说,它是一个 xterm 窗口或 konsole 窗口,或者您使用的任何实用程序。当您要求它们时,它们就会出现并获得给定的序列号:pts/0,然后是 pts/1 等等。物理控制台是实际连接到您的盒子的硬件 - 您可能只有一个。这被标记为“ :0 ”,被称为实际的“控制台”。