终端仿真的一个简单类型是设置一个真实的终端来仿真另一个品牌/型号的终端。为此,您可以从终端的设置菜单中选择所需的仿真(在 Wyse 术语中称为“个性”)。本节将不讨论这种情况。
由于 PC 具有屏幕和键盘(与真实终端一样),但同时也具有更强大的计算能力,因此很容易利用其中的一些计算能力使 PC 计算机的行为类似于真实的文本终端。第三种类型是您只需使用基于文本的界面(在控制台上——通常只是监视器)连接到您的 Linux PC,可以通过 Xwindow 中的终端屏幕(例如 xterm)或通过“虚拟终端”来实现。
要在 PC 上完全仿真真实终端,需要使用计算机的串行端口将仿真的终端连接到另一台计算机。这可以通过从串行端口到串行端口的直接电缆连接,或者通过调制解调器来实现。但在其他情况下,串行端口不会直接用作接口。相反,接口可能是网络,并且往返于终端的字节流将通过网络数据包传输,可以通过串行端口上的调制解调器或通过以太网端口传输。
连接到远程计算机的仿真提供了比真实文本终端更多的功能,因为执行仿真的 PC 也可以在仿真终端的同时执行其他任务。例如,对于串行端口连接,可以在 PC 上运行 kermit 或 zmodem,以实现通过串行线路(可能通过电话线经由调制解调器)将文件传输到您连接的另一台计算机。仿真只需要在 PC 的一个虚拟控制台上运行,而其他虚拟控制台可用于以命令行界面使用 PC。
对于 Linux,请参阅将 Linux PC 用作串行端口终端。用于此目的的仿真软件也适用于 MS Windows。请参阅将非 Linux PC 用作终端 这可以用于将 Windows PC(作为文本终端)连接到 Linux PC。
大多数 Linux 自由软件只能仿真 VT100、VT102 或 VT100/ANSI、xterm、pterm 或 Wyse60(但不是完全仿真)。由于大多数 PC 都有彩色显示器,而 VT100 和 VT102 是为单色显示器设计的,因此仿真通常会添加颜色功能(包括颜色选择)。有时仿真并非 100% 完美,但这通常不会引起太多问题。它们都没有提供可编程功能键。在 MS Windows 下运行的非自由仿真软件可以仿真比自由 Linux 更多的终端。
有些人错误地认为,他们可以通过将环境变量 TERM 设置为他们想要仿真的终端类型,在 Linux 控制台(监视器)上创建一个仿真器。这是行不通的。TERM 的值仅告诉应用程序您正在使用的终端类型。这样,它就不需要交互式地询问您这个问题(并且它太笨了,无法探测终端以找出它是哪种类型)。如果您在 Linux PC 监视器(命令行界面)上,它就是“Linux”类型的终端,由于您无法更改它,因此 TERM 必须设置为“Linux”。但是这个“Linux”应该自动设置,而无需您做任何事情。
如果您将其设置为其他值,您就是在对应用程序撒谎。结果,它将错误地解释来自控制台的某些转义序列,从而导致界面损坏。由于 Linux 控制台的行为几乎类似于 vt100 终端,如果您谎称它是 vt100(或某些其他接近 vt100 的终端),它仍然可以几乎正常工作。在这种情况下,它似乎大部分时间都可以正常工作,但偶尔会出现错误。
虽然较新的免费 PuTTY 和 Terra-Term 程序可以直接连接到串行线路,但无法拨号,但大多数较旧的程序都通过串行端口调制解调器进行拨号。一些拨号程序用于通过调制解调器建立到 Internet 的 PPP 连接,例如 wvdial,并且通常不包括任何终端仿真。但一些其他程序(例如 minicom 或 seyon)同时执行终端仿真和调制解调器拨号(不使用 PPP,因此不容易使用它们连接到互联网)。但是,由于这些程序通过指定的串行端口(包括 PC 背面没有连接器的“内部”串行端口)连接到调制解调器,因此它们可以用于通过 PC 背面可能的串行端口连接器连接到串行线路。对于这种情况,您只需将它们设置为连接而不拨打电话号码。“picocom”程序仅执行终端仿真,尽管可以键入调制解调器命令和电话号码手动拨号。这些程序对于测试调制解调器也很有用。Seyon 仅适用于 X Window,可以仿真 Tektronix 4014 终端。在过去(在互联网普及之前),人们可以使用拨号程序拨打一些公共图书馆以使用其目录和索引,甚至在线阅读杂志文章。但如今,这种活动几乎总是使用互联网完成,互联网上有更多的连接选择,而且没有长途电话费。
通信程序 C-Kermit(有时简称为 kermit)在 Linux 中(2006 年)不进行终端仿真。但是 Kermit 可以在其非自由 MS Windows 版本中仿真许多终端,因此您会看到很多关于 Kermit 可以进行终端仿真的说法。在 Linux 中,它只是您所在的任何终端与您连接的远程站点之间的半透明管道。因此,如果您在 Linux PC 上使用 kermit,则终端类型将为“Linux”。如果您将 Wyse60 连接到您的 PC 并从中运行 kermit,您将在远程计算机上显示为 Wyse60(远程计算机可能无法处理 Wyse60 终端)。Minicom 仿真 VT102,如果您在 Wyse60 终端 vt102 上使用它,远程主机会认为您是 vt102 并向您发送 vt102 转义序列。这些序列将流入您计算机的串行端口,并在通过您计算机上的另一个串行端口输出到您的 Wyse60 终端之前转换为 Wyse 转义序列。C-Kermit 无法做到这一点。
DOS 下存在仿真器,例如 telix
和 procomm
,它们也运行良好。仿真的终端通常是旧的 VT100、VT102 或 ANSI(如 VT100)。
有许多终端仿真程序(例如 xterm、uxterm、gnome-terminal 和 konsole)可以在 X Window 下运行。它们通常可以仿真 VT102,但有些可能能够仿真 VT220 或 Tektronix 4014。它们为计算机提供命令行界面,但它们不像文本终端那样通过串行端口进行通信。有关此类仿真器的简要列表,请参阅Ubuntu -- x-terminal-emulator。有些是多语言的。您的 Linux 发行版可能已为您安装了一个。
除非使用带有大型显示器的 X Window,否则真实终端通常比仿真终端更易于使用。它通常具有更好的文本分辨率(因为它是单色的),并且没有磁盘驱动器来产生烦人的噪音。如今,现代彩色显示器的分辨率比旧文本终端的分辨率更好,并且磁盘驱动器也更安静。
对于 VT 系列终端,有一个测试程序:vttest
,用于帮助确定终端的行为是否像 vt53、vt100、vt102、vt220、vt320、vt420 等一样正确。没有文档,但它有菜单并且易于使用。要编译它,请运行 configure 脚本,然后键入“make”。可以从以下网址下载:http://www.ibiblio.org/pub/Linux/utils/console/
PC Linux 系统的控制台通常是文本模式下的计算机监视器。它仿真“Linux”类型的终端,它使用的转义序列在手册页中:console_codes。无法使此界面仿真任何其他内容。当然,您可以在 PC 上运行仿真软件,以便在软件程序运行时,监视器和键盘将仿真文本终端。将 TERM 环境变量设置为“Linux”以外的任何终端类型都不会导致仿真该其他终端。它只会导致界面损坏,因为您错误地声明(通过 TERM 变量)您的“终端”的类型与其实际类型不同:Linux。请参阅不要使用 TERM 进行仿真
在 X Window 中,使用终端仿真器为您提供相当于控制台的功能。对于 KDE,他们选择将此仿真称为“konsole”。在某些情况下,Linux PC 的控制台是文本终端。可以重新编译 Linux 以使终端接收通常发送到控制台的大部分消息。请参阅使串行终端成为控制台。
监视器的“Linux”仿真非常灵活,并且具有超出 vt102 终端的功能,它旨在仿真 vt102 终端。这些功能包括使用自定义字体和轻松重新映射键盘的能力。这些额外的功能驻留在控制台驱动程序软件(包括键盘驱动程序)中。控制台驱动程序仅适用于监视器,即使真实终端用于控制台,它也不适用于真实终端。因此,“控制台驱动程序”实际上是“监视器驱动程序”。在 Linux 的早期,无法将真实终端用作控制台,因此“监视器”和“控制台”曾经总是同一件事。
stty 命令适用于监视器控制台,就像它是真实终端一样。它们由用于真实终端的同一终端驱动程序处理。 направляющиеся к экрану байты сначала проходят через драйвер терминала (tty), а затем через драйвер консоли. 对于监视器,某些 stty 命令不起作用(例如设置波特率)。您可以将监视器波特率设置为任何允许的值(例如慢速 300 速度),但将文本放到监视器屏幕上的实际速度实际上不会改变。文件 /etc/ioctl.save 存储 stty 设置,仅在控制台处于单用户模式时使用(但您通常处于多用户模式)。这在 init 手册页中(稍微)解释了。
存在许多命令来利用控制台-监视器驱动程序提供的附加功能。真实终端不使用扫描码和 VGA 卡,不幸的是,无法使用这些功能。要了解有关控制台的更多信息,请参阅 Keyboard-and-Console-HOWTO。另请参阅有关控制台的各种手册页(键入“man -k console”)。不幸的是,其中许多文档已过时。
由于有免费程序可以仿真最常见的终端,因此您不太可能需要使用任何非自由软件。但是,如果您需要购买软件,则应彻底检查其他客户对它的评价。
除非您想要仿真标准的 vt100(或接近它的)、xterm 或 Wyse 60,否则似乎没有太多可用于 Linux 的免费终端仿真软件。免费程序是 minicom、picocom,对于 GUI:seyon 和 PuTTY。Seyon 可以仿真 xterm 或 vt100,而 PuTTy 使用其自己的 termcap (terminfo),名为“putty”(将终端类型“putty”放在 /etc/inittab 中)。Putty 的“pterm”可以用作 xterm 的替代品。
PuTTY 比大多数其他仿真都新,它的主要用途是作为 SSH 客户端,但您可以为其串行端口连接设置配置。Seyon 较旧,但功能更多(其中一些功能很少需要)。还有更新(但较弱)的 GUI 界面“仿真器”:gtkterm 和 cutecom,它们都不能仿真任何终端,除了“dumb”类型的终端??)。Seyon 还可以仿真 Tektronix 4014 终端。对于 Wyse,请参阅Wyse 60 仿真器。
gtkterm(和可能的 cutecom)都不使用转义序列,并且可以说仿真“dumb”类型的终端,因此如果用作在主机计算机上使用 vim 编辑器等编辑文件的文本终端,它们将非常慢。gtkterm 易于设置,功能非常弱,但它会在屏幕底部显示其当前状态。
Minicom、PuTTY、picocom、gtkterm 或 cutecom 可以通过简单地启动其中一个来仿真直接连接的终端。对于 minicom,您必须为其配置使用的串行端口)。Picocom 就像一个迷你版的 minicom,没有自动拨号功能。Gtkterm 可以称为“迷你迷你迷你版的 minicom”。
Minicom:对于 minicom 的情况,您显然不尝试拨号。当您想要退出 minicom(在您从另一台 PC 注销后)时,您使用 minicom 的 q 命令退出而不重置,因为没有调制解调器需要重置。当 minicom 启动时,它会自动向串行端口发送调制解调器初始化字符串。但是由于那里没有调制解调器,因此该字符串会放在“login:”提示符之后。如果此字符串主要是大写字母,则另一台 PC 上的 getty 程序(运行登录)可能会认为您的终端只有大写字母,并尝试仅使用大写字母。为避免这种情况,请将 minicom 发送的调制解调器初始化字符串配置为空(擦除初始化字符串)。
非自由终端仿真器“Procomm”(来自 MS 世界)可以在 Linux PC 上使用,如果您运行 dosemu 来仿真 Dos 或可能在仿真 MS Windows 的模式下使用。它的最后一个版本似乎是 4.8,于 2000 年左右发布,因此它可能无法与现代 MS 系统一起使用。它由 Symantec 出售,Symantec 有许多支持它的文件,可以使用他们的搜索引擎在 http://www.symantec.com/ 上找到。如果您查看互联网(在 2008 年),它仍然在各地销售。
有一个专门的 Linux 发行版:Serial Terminal Linux。它会将 PC 变成类似 minicom 的终端。它很小(适合软盘),并且不允许您将 PC 用于任何其他目的(当它运行时)。它的链接已损坏,但一个类似的链接(在 2013 年)但在 CD 上的是 ASASHI DOT NET: PITUX, micro SERIAL TERMINAL LINUX
TERM(来自 Century Software 的非自由商业软件)终端仿真器 可以仿真 Wyse60、50;VT 220、102、100、52:TV950、925、912;PCTERM;ANSI;IBM3101;ADM-1l;WANG 2110。块模式可用于 IBM 和 Wyse。它在 Linux PC 上运行。
当您运行 telnet 或 ssh 等程序时,这会自动发生,当然前提是您的计算机已连接到网络(可能通过调制解调器)。Telnet 通常使用网络(通常是 Internet)将您的控制台(仿真“Linux”类型的终端)连接到远程计算机,供您登录。但是,有一些免费程序允许您在 PC 上使用 telnet 和 IBM 终端仿真来连接 IBM 大型机。
一个 IBM 程序仿真 IBM tn5250 终端和打印机,另一个仿真 IBM c3270。还有一个仿真 IBM pr3287 打印机(大型机认为它已连接到打印机)。Debian 发行版具有这些。据报告,tn5250 在 Linux 下仿真 vt 键盘,而不是像它应该的那样仿真 5250 键盘。此外,据报告,MS Windows 版本的文档和键盘映射比 Linux 版本的更好。
存在在非 Linux PC 上运行的仿真器。它们允许您使用非 Linux-PC 作为连接到 Linux-PC 的终端。在 DOS 下,有许多程序不仅仿真终端,而且还允许您使用调制解调器拨号,以便您可以通过电话线连接到其他计算机(而无需连接到 Internet)。具有历史意义的是 1994 年 2 月 Byte 杂志上的一篇文章,题为“DOS 串行通信”。它曾经位于 http://www.byte.com/art/9402/sec8/art1.htm。
如今,Windows 附带“HyperTerminal”(以前在 Windows 3.x 和 DOS 中简称为“终端”)。与此竞争的是免费(开源)PuTTY 和非自由“HyperTerminal Private Edition”http://www.hilgraeve.com/htpe/index.html,它对企业来说是非自由的。它可以仿真 vt-220。PuTTY 仿真 xterm,据推测还仿真 vt-102,但它没有文件传输功能(例如 zmodem),而 HyperTerminal 具有文件传输功能。但 PuTTY 允许显示高度超过 24 行(通过键入 LINES=32 将 Linux shell 变量 LINES 设置为 32)。Turbosoft 的 TTWin(非自由)可以在 Windows 下仿真 80 多种不同的终端。请参阅 http://www.ttwin.com/ 或 http://www.turbosoft.com.au/(澳大利亚)。另请参阅 WRQ
对于使用 Mac 计算机仿真通用终端,请使用 PuTTY、Linux 的“minicom”(移植到 Mac OS X)或旧的“zterm”(共享软件)。对于 OS X 之前的非常旧的 Mac,请参阅 mini-howto:Mac-Terminal。Carnation Software 拥有非自由软件,可在 Mac 上仿真各种终端。Mac OS X 有一个“终端”程序,它为您提供一个终端窗口,就像 Linux X Window 中的 xterm 窗口一样。在该窗口中,您可以运行“minicom”(如果可用)。“fink”和“darwinports”项目都已将 minicom 移植到 Mac,但它们可能没有最新版本,您可能需要自己编译 minicom。
由于用于文本终端仿真的显示器几乎总是彩色显示器,因此您可以利用单词的颜色编码。除了以这种方式显示目录(请参阅ls 功能示例)之外,一些其他 Linux 程序也显示彩色编码的文本。这似乎大多在没有任何配置的情况下发生,但可能会出现颜色冲突。例如,如果您已将背景颜色设置为绿色,那么如果程序向您发送绿色文本,则将很难或无法阅读。
颜色通常通过程序向终端发送 ANSI 转义序列来工作。人们可能会认为,仿真的终端会在 terminfo 中显示终端的 ANSI 转义码。对于终端。但这通常不是这种情况,因为如果终端支持颜色,则似乎假定这些颜色将使用 ANSI 编码发送到终端。
如果您想查看这些编码是什么,请查看“man console_codes”。此手册页中的 ECMA-48 颜色代码似乎是 ANSI 颜色代码的子集。有关详细信息,请参阅ANSI 转义码 - 维基百科。请注意,这些 ANSI 代码涵盖的内容不仅仅是颜色。
对于 PuTTY,可以通过使用设置菜单并单击“颜色”来为每个 ANSI 代码选择要显示的精确颜色。例如,如果您的屏幕背景为浅绿色,则可以将该 ANSI 颜色重新映射为您选择的某种棕色阴影。请注意,浅绿色称为“绿色粗体”。它是粗体,因为它包含大量白色,使其成为浅色。