在1970年代,我们的硬件终端带有用于输入/输出的CUI(字符用户界面)接口。
现在,我们在Unix / Linux世界中有了终端仿真器(Ctrl+ Alt+ Fn)。
在Ubuntu OS中,我看到了七个终端仿真器,其中GUI占据了第七个终端仿真器(Ctrl+ Alt+ F7)。
例如,这是我的第一个终端(Ctrl+ Alt+ F1)仿真器
$ tty
/dev/tty0
为什么Unix / Linux提供多个终端仿真器?
在1970年代,我们的硬件终端带有用于输入/输出的CUI(字符用户界面)接口。
现在,我们在Unix / Linux世界中有了终端仿真器(Ctrl+ Alt+ Fn)。
在Ubuntu OS中,我看到了七个终端仿真器,其中GUI占据了第七个终端仿真器(Ctrl+ Alt+ F7)。
例如,这是我的第一个终端(Ctrl+ Alt+ F1)仿真器
$ tty
/dev/tty0
为什么Unix / Linux提供多个终端仿真器?
Answers:
为什么UNIX / Linux [在控制台上]提供多个终端仿真器?
出于相同的原因,您的GUI终端仿真器可能支持选项卡(例如GNOME Terminal),如果不支持(例如rxvt
),则出于相同的原因,启动第二个GUI终端应用程序实例并不仅会将第一个拉到前台并退出,强制您使用第一个实例。
我通常在工作中至少使用3个终端窗口,并且经常使用更多:
我正在处理的系统服务器端的文本编辑器
同一系统客户端的文本编辑器
运行服务器的命令窗口
我很少需要第四个终端来运行客户端程序,因为它通常在其他地方运行(Web应用程序,本机GUI应用程序,移动应用程序等),但是如果我正在为服务器应用程序开发CLI客户端,则需要一个也为它打开了单独的终端。
过去,在sudo
流行之前,我一直在root
打开终端。
如今,我很少在没有GUI的情况下在控制台上以交互方式使用Unix / Linux机器,但是我经常无头运行它们并通过SSH访问它们。我选择的SSH终端客户端支持如上配置的选项卡。
我目前的一项爱好项目是偶尔使用一个真正的旧玻璃终端,这意味着我不再有多个终端窗口,所以我终于对GNUscreen
有了一些了解,该程序以前从未使用过,因为多个控制台终端或多个GUI终端。怎么screen
办?除此之外,你可以配置它给你多个虚拟终端在一个屏幕上,就像Linux中做Ctrl- - 。AltFx
这是几乎所有(如果不是全部)Unix和Unix(如在x86硬件上运行)所提供的功能。有趣的是,虚拟控制台是由Microsoft Xenix在八十年代初期首先在Unix中引入的,并且还可以在并行CP / M中使用。
此功能后来集成到AT&T SVR4 Unix,Solaris中,并由BSD和Linux借用。
为什么UNIX / Linux提供多个终端仿真器?
最初介绍它们时,没有图形环境可用于运行这些Unix实现的计算机。虽然将物理终端通过RS232线路连接到中央Unix服务器是标准做法,但是如果目标仅是单个用户同时运行多个交互式程序,则将多个终端连接到运行Xenix的标准PC上是过头的。虚拟终端为该问题提供了一种优雅而便捷的解决方案。
后来的其他Unix实现提供了相同的功能来满足相同的需求。
当图形环境(尤其是X11)散布开来时,能够在同一屏幕上同时看到多个终端仿真器是一项重大改进。但是,通常保留虚拟控制台功能的原因仅在于,如果图形环境由于某种原因被冻结或功能异常,仍然可以方便地切换到控制台。
请注意,实用程序喜欢screen
和tmux
出现的时间比虚拟终端要晚得多,以推广相同的功能。他们的优势是它们可以采用非仅本地物理控制台上,而且对任何会议,无论是本地或远程(例如telnet
,ssh
)。当在物理控制台上使用虚拟控制台时,虚拟控制台仍然有用,因为它们在某些情况下无法工作screen
/ tmux
无法帮助,例如X11被冻结,或者窗口捕获了焦点但没有释放它,它们就可以发挥作用。
基于容器的虚拟化(例如Solaris区域或Linux LXC)也提供了一种方法zlogin -C zone
,lxc-console -t 0 -n container
分别通过和连接到容器控制台。
我想拥有额外的终端仿真器的一个很好的理由是,如果您在图形界面中执行了某些错误操作而变得无法使用,则可以快速切换到终端仿真器并更正图形界面中遇到的所有问题。实际上,当您更改窗口管理器或图形界面的其他功能时,通常会发生这种情况。我想拥有更多终端也很有用,但是在主图形界面上有6个顶盖似乎有点多余。
如果我错了,也请纠正我,但是否不可能从一个终端仿真器以不同用户身份运行多个命令?
许多其他问题似乎可以回答为什么引入该功能。
不过,实际的问题是:
为什么Unix / Linux提供多个终端仿真器?
“做”,而不是“做”。
因此,关注当前时间,这是一些当前原因:
总而言之,没有太多理由不支持这一点。有些人至少在某些时候会体会到一些好处,而且成本也不高。
实际上,除去对此的支持可能比仅保留支持更多的工作。尽管取消支持可能很简单,但是如果有什么失败的话,那么识别和解决问题可能会有些挑战。因此,减少所需的工作量(开发新版本的操作系统)是将事情保持原样的另一个原因。这意味着该功能易于保持可用。
您首先要问的是名为Linux的内核的功能。通常不是Unix,也不是Gnu。
至于为什么,你将不得不问作者。但是我的猜测是,它允许未联网设备的管理员(这里我将RS232作为一种网络类型)进行登录并执行一些管理工作,而无需注销其他用户。