我试图了解终端、控制台、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 |
| |
+-------------------+
您可以使用
tty
-command 查看您当前所在的终端。如果你试一试,你会看到所有终端仿真器和 ssh 访问都会导致,例如/dev/pts/X
,当“直接”访问机器(即插入显示器+键盘)时,你会得到/dev/ttyX
. (旁注:在后一种情况下也可以使用CRTL+ALT+FX,而不是使用chvt X
)pts
表示伪终端,我不知道有任何方法可以从终端本身更改它 - 但是它向我们展示了您的ssh
-session (即putty
)实际上与终端仿真器的行为方式相同。(更多关于这个主题的信息可以在这里找到)因此,您的选择是:
putty
您可以ALT+TAB从 Windows切换的多个会话screen
或tmux
可以启动多个伪终端并在它们之间切换(甚至拆分屏幕以在一个视图中有两个或多个终端)在 GUI 案例中,您受到与 CLI 案例相同的限制。
每台运行 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,您可以将当前命令行界面拆分为两个终端。