最近我在终端里玩弄并输入了命令who
。当我看到我的用户名和日期时,我不知道这是什么tty7
(tty2
在 Ubuntu 17.10 及更新版本上)或这pts/0
是什么,有人可以向我解释一下吗?
答案1
TTY 这个名字实际上来自于计算机的旧时代:当时的计算机甚至有电传打字机作为终端,因此您可以看到打印的程序输出(tty = TeleTYpe/TeleTYpewrite)。
TTY 通常指“物理”终端,比如连接到单台计算机的更多终端(甚至像电传打字机),或者在我们这个时代:更多独立的文本控制台,您可以在它们之间切换Ctrl + Alt + F1-F7(或更多,如果您配置了更多;在 Ubuntu 17.10 及更新版本上按 F3-F6)。
对于 Ubuntu 来说,tty7 通常由 Xorg/Wayland 显示服务器使用,请提供您的图形环境(更准确地说,它仅提供“窗口系统”,而像 gnome 这样的东西 - 作为桌面环境解决方案 - 在“其顶部”运行)。
相比之下,“pts”是“伪终端”概念的(一半),它在没有“真实”物理终端上下文的情况下实现终端功能,例如,如果你打开 gnome-terminal,为了使 shell(通常是 Ubuntu 系统上的 bash)能够运行,它需要终端功能。
如果您使用“ssh”登录远程机器,情况也是如此,简而言之:每当某些东西需要类似终端/tty 的功能而没有“真实”tty 时。
答案2
我认为通常是显示服务器(X 服务器)。
按Ctrl+ Alt+ F7(Ubuntu 17.10 及更新版本上为 F3)并查看它是否会将您带至图形登录会话(或让您保留在那里)。
您也可以打开 shell 并运行tty
。它会告诉您当前终端的名称。
答案3
tty7 是您登录的物理终端。在许多情况下,tty7 是您的窗口管理器运行的地方,也是您登录的地方。
从下面的清单可以看出,我于 5 月 24 日 9:33 从 tty7 登录(通过 Gnome 窗口管理器登录对话框),然后打开了 4 个伪终端。
[iluvblender@myhome ~]$ last | tac | egrep "May\s*24"
sgoda tty7 :0 Wed May 24 09:33 still logged in
sgoda pts/0 :0 Wed May 24 09:33 still logged in
sgoda pts/2 :0 Wed May 24 09:36 still logged in
sgoda pts/4 :0 Wed May 24 09:40 still logged in
sgoda pts/5 :0 Wed May 24 09:42 still logged in