'xterm-256color': unknown terminal type.

把我的Mac pro升级到Lion之后,照旧通过终端ssh连接到了Ubuntu Server。其他的命令操作均无异常,只是在习惯性的输入了top命令之后,系统没有正常启动top界面,反而出现如下的提示:
root@www:~# top
‘xterm-256color’: unknown terminal type.
然而在Centos的主机下却不会出现问题。

说起终端的类型,尽管现在的终端大多都是一个PC而已,事实上在N多年前,终端类型可能仅仅只是体现了厂商的品牌而已,不同的终端类型多如牛毛。他们对于光标、控制字符以及颜色的定义相互都不兼容,历史遗留的问题了。包括之前也发觉很多主机商“backspace”键无效,必须使用ctrl+h进行退格的问题。

在Mac的终端下操作:

LitrindeMacBook-Pro:~ litrin$ echo $TERM
vt100
LitrindeMacBook-Pro:~ litrin$ infocmp vt100
#	Reconstructed via infocmp from file: /usr/share/terminfo/76/vt100
vt100|vt100-am|dec vt100 (w/advanced video),
	am, mc5i, msgr, xenl, xon,
	cols#80, it#8, lines#24, vt#3,
	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
	clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
	cuf=\E[%p1%dC, cuf1=\E[C$<2>,
	cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
	cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
	enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, ka1=\EOq,
	ka3=\EOs, kb2=\EOr, kbs=^H, kc1=\EOp, kc3=\EOn, kcub1=\EOD,
	kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kent=\EOM, kf0=\EOy,
	kf1=\EOP, kf10=\EOx, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOt,
	kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw, lf1=pf1, lf2=pf2,
	lf3=pf3, lf4=pf4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rc=\E8,
	rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
	rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
	sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
	smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,

说明了主机的默认终端类型正是导致出现问题的“xterm-256color”,对于每一种终端的定义,需要在terminfo文件中定义,Mac下这个文件保存在/usr/share/terminfo/目录下,而这个故障出现的最终原因是Ubuntu或者说Debian系的Linux默认没有xterm-256color终端的定义,而Lion操作系统升级之后,默认的终端类型从之前的vt100变成了xterm-color。

扯了这么多,解决方案有两种,都很简单:

  1. 让server端支持xterm-256color:apt-get install ncurses-term,安装终端支持。
  2. 在Mac下终端的“偏好设置”,“设置”选项卡,“高级”选项,“声明终端为:”修改为“xterm-color”或者其他的类型,看个人喜好了。

个人推荐还是采用方法2解决,此外,你也可以通过定义其他类型的终端,解决其他类似的问题。

 

2011-10-05(PST)来自:乔布斯的MacBook Pro

推荐阅读:
之前一直不太想过多的介绍Ubu
作为Linux内核级别的资源限
在前几天发布的Ubuntu16

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请补全下列算式: *

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据