更改终端仿真器


Answers:


15

服务器(在系统V或BSD中,派生的OS)使用环境变量TERM的值来控制系统如何识别输入以及存在哪些输出能力。某些终端类型非常相似,可以互换而仍保持有用,而另一些则可以使系统无法使用,直到您打开具有TERM支持值的新连接。例如,从一个Linux系统到另一个Linux系统,vt100,vt220和xterm设置之间的差异可能很小。大多数差异在于输出的显示方式以及该类型的终端是否可以使用颜色或粗体字体。termcap数据库列出了所有终端类型及其各种功能。

只要您不切换到键盘和屏幕不兼容的终端类型,就可以了。

请阅读系统上的术语手册页和termcap,以获取更多信息。

要更改终端类型:

在bash中:

export TERM=vt100

在bourne shell或ksh中:

TERM=vt100
export TERM

在csh或tcsh中:

setenv TERM vt100

vt100是一个非常安全的终端,可以开始使用。它与xterm兼容,但是不显示颜色或粗体字体,并且可能无法识别您的F *键,但是您不太可能使用vt100弄乱任何内容。

许多人在个人初始化脚本中使用终端检测来优化用户体验,这取决于他们如何登录服务器。例如,如果您使用的是vt100,请设置一个普通PS1;在xterm中使用bash时,请使用颜色和动态变量。

祝您研究顺利。


3
@intrpc注意,很少需要更改TERM变量。当您登录到不知道新终端名称的旧系统时,这是非常必要的(在过去的15年左右,没有太多新的终端类型,大多数终端仿真器都将其样式设置为xterm)。TERM是终端类型程序相信他们正在与之交谈的对象,它并不会改变终端的实际含义。
吉尔(Gilles)“所以,别再邪恶了”,

9

你误会了

您在本地的控制台或终端或PuTTY实例是实际的“终端仿真器”,尽管如今我们只是将其简称为“终端”。当人们实际使用监视器和键盘终端而不是使用多个控制台和图形用户环境来登录大型机服务器时,这种用法就产生了。

$ TERM变量仅告诉远程系统您的终端在发送它们时将理解哪种控制代码(例如,生成基于文本的菜单或任何基于libncurses的内容)。

我不确定您到底想完成什么,但是更改$ TERM可能无济于事。


感谢@Shadur,这很有帮助。我想启用对更多颜色的支持。我在转义字符时遇到问题,正如我在此问题的更新中解释的那样。万一这很重要,那么两台机器/系统都是现代的(Ubuntu 11.10在我的本地机器上和Red Hat Enterprise Linux Server release 5.4 (Tikanga)在远程机器上)
Amelio Vazquez-Reina

抱歉,链接指向错误的问题。我刚刚在上面编辑了我的评论。
Amelio Vazquez-Reina

然后您的问题仍然不是TERM变量,因为我的gnome-terminal窗口通过SSH传输到$ TERM值为xterm的远程服务器上,呈现ansi颜色没有问题。如果您解释问题而不是问如何实施您认为应该成为解决方案的方法,可能会更好。
Shadur 2011年

谢谢,但是我没有说“我的问题”是$TERM变量。另外,我并不是要问这个问题,其唯一目的就是为另一个问题/问题找到解决方案。如果有的话,我的其他问题的动机这个问题。最后,我认为通过问这个问题来了解有关终端仿真器如何工作的更多信息没有任何问题。
Amelio Vazquez-Reina

顺便说一句,不要误会我的意思,感谢您的建议,正如我之前所说,您的回答帮助我更好地了解了终端仿真器。
Amelio Vazquez-Reina
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.