我试图理解终端、控制台、tty、虚拟终端、终端模拟器和这类东西。以下是我的环境的拓扑。有一台Linux服务器和一台Windows 10 PC。我putty
在PC上使用并连接到Linux服务器。在这种情况下,它似乎ctrl + alt + f1~6无法带我到其他虚拟终端。我知道如果Linux服务器安装了GUI,ctrl + alt + f1~6当我直接连接到服务器时我可以按(例如,我插入了键盘和显示器)。我的问题是:
- 我可以在拓扑中使用多个虚拟终端吗?
- 如果Linux服务器安装了GUI(如Gnome),我可以在同一拓扑中使用多个虚拟终端(通过SSH连接)吗?
- 在这个拓扑中,是
putty
终端吗?控制台?或者终端模拟器?
我实际上已经阅读了不同书籍中的几篇文章和相关部分。似乎不同的人介绍这些概念有点不同,我仍然很困惑。 IMO,这是我的 Linux 学习之旅中最困难的部分。
+---------------------+
| |
| |
| Linux Server |
| (No GUI installed) |
| |
+-----------+---------+
^
|
| SSH
|
+----------+--------+
| | |
| +---+---+ |
| | Putty | |
| +-------+ |
| |
| Windows 10 PC |
| |
+-------------------+
答案1
每台运行 linux 的计算机(noGui 服务器、带 Gui 的笔记本电脑等)都有 tty(如果你插入键盘并使用 ctrl+alt+fX 你就会看到)。
当您使用 putty 进行 ssh 时,您使用的是 ssh 客户端(如 Linux 和其他类 UNIX 系统上的 openssh-client)。
当您使用 ssh 连接到服务器时,您正在远程连接,并且 ssh 服务器向您的客户端提供命令行界面。
当你连接时由服务器查看,通过 ssh 你不是在 tty 上/dev/ttyX
而是在 pty 上/dev/pts/X
然后,如果您想切换到服务器上的另一个命令行界面,您只需启动一个新的 ssh 连接,或者如果您在服务器上安装了 screen 或 tmux,则可以将当前命令行界面拆分为两个终端。
答案2
您可以使用tty
-命令查看您当前所在的终端。如果您尝试一下,您会发现所有终端模拟器和 ssh 访问都会导致例如,/dev/pts/X
而当“直接”访问机器(即插入显示器+键盘)时,您将得到/dev/ttyX
. (旁注:不使用CRTL+ALT+FX,chvt X
也适用于后一种情况)
pts
意味着伪终端,我不知道有什么方法可以从终端本身更改它 - 但是它向我们表明您的ssh
-session (即putty
)实际上与终端模拟器的行为方式相同。 (关于这个主题的更多信息可以找到这里)
您的选择是:
- 您可以从 Windows
putty
切换多个会话ALT+TAB screen
类似或的终端多路复用器tmux
可以启动多个伪终端并在它们之间切换(甚至可以分割屏幕以在一个视图中包含两个或多个终端)
在 GUI 情况下,您受到与 CLI 情况相同的限制。