当我跑步时
screen
在远程主机(运行Linux)上,我收到以下错误:
Cannot find terminfo entry for 'xterm-256color'.
我在Mac OSX Lion上运行终端以访问远程主机。我用谷歌搜索找出这个问题的解决方案,似乎人们建议做
export TERM=xterm-color
对我来说不起作用。
请帮忙。
答案 0 :(得分:52)
找出支持哪个TERM:
ls /usr/share/terminfo/x
这将为您提供支持的TERM列表,即
xterm
xterm-xfree86
设置环境变量:
export TERM=xterm-xfree86
并运行屏幕:
TERMINFO='/usr/share/terminfo/' screen
答案 1 :(得分:13)
在您用于ssh的终端应用中,转到偏好设置 - >高级 - >将终端声明为: - > xterm-color(或xterm-256color之外的东西)
这个答案来自对这篇文章的评论,该评论有另一个解决方案: http://marcoschuh.de/wp/?p=873
答案 2 :(得分:4)
我能够从菜单中更改Mac OSX(10.7.5)终端(v2.2.3,303.2)仿真 终端>设定>设置>高级>仿真 将终端声明为xterm-color
打开新的终端ssh连接启用了新设置。
答案 3 :(得分:4)
如果是我的Buffalo Linkstation,我就这样解决了:
cd /lib/terminfo/x
ln -s xterm-color xterm-256color
答案 4 :(得分:3)
我以前使用默认的Mac OS X终端应用程序通过ssh访问我的基于Ubuntu的tmux,发现你描述的问题 - 我的bash和tmux设置为screen-256color,这个选项甚至不在列表中在Mac终端首选项中。
我尝试添加一行:
export TERM=screen-256color
作为启动命令,但它被忽略并在启动时被xterm-color覆盖。
我还设法通过选择Shell>将Mac终端的设置更改为screen-256color。导出设置,然后编辑它生成的XML文件,找到行xterm-color并将其更改为screen-256color,然后Shell>导入此设置文件。然而,在启动终端时,我发现仍然用xterm-color覆盖了这个设置。
所以我承认并下载了iTerm2,这允许我通过在纯文本字段中键入(而不是从有限的下拉菜单中选择)来更改屏幕256色设置。这可以直接使用,甚至无需关闭并重新打开控制台。
总而言之,我建议使用iTerm2而不是默认的Mac终端(它似乎不允许更改你需要的$ TERM。)
答案 5 :(得分:3)
您可以在远程服务器(Debian / Ubuntu)上安装ncurses-term
来解决问题。
答案 6 :(得分:2)
您可能需要在Linux主机上安装一个软件包,该软件包提供以下文件之一:
/usr/share/terminfo/x/xterm-256color
/lib/terminfo/x/xterm-256color
例如,在Ubuntu上,这是由ncurses-base
包提供的。
答案 7 :(得分:0)
在问题中,用户的配置要求提供不是默认 screen
的终端说明。这最终由Apple的更新修复。在问题中引用的版本中,Apple没有提供该终端描述。他们现在这样做(自2015年以来)。为了记录,这里是一个目录列表,显示了MacPorts(在/opt/local
),本地构建的ncurses(在/usr/local
中)和/usr/share
中的Apple / system文件的相关条目:< / p>
-rw-r--r-- 1 root 1912 Oct 3 2015 opt/local/share/terminfo/73/screen-256color
-rw-r--r-- 1 root 1924 Oct 3 2015 opt/local/share/terminfo/73/screen-256color-bce
-rw-r--r-- 1 root 1954 Oct 3 2015 opt/local/share/terminfo/73/screen-256color-bce-s
-rw-r--r-- 1 root 1940 Oct 3 2015 opt/local/share/terminfo/73/screen-256color-s
-rw-r--r-- 1 root 1912 Apr 12 04:22 usr/local/ncurses/share/terminfo/73/screen-256color
-rw-r--r-- 1 root 1924 Apr 12 04:22 usr/local/ncurses/share/terminfo/73/screen-256color-bce
-rw-r--r-- 1 root 1954 Apr 12 04:22 usr/local/ncurses/share/terminfo/73/screen-256color-bce-s
-rw-r--r-- 1 root 1940 Apr 12 04:22 usr/local/ncurses/share/terminfo/73/screen-256color-s
-rw-r--r-- 1 root 1828 Aug 22 2015 usr/share/terminfo/73/screen-256color
-rw-r--r-- 1 root 1840 Aug 22 2015 usr/share/terminfo/73/screen-256color-bce
-rw-r--r-- 1 root 1866 Aug 22 2015 usr/share/terminfo/73/screen-256color-bce-s
-rw-r--r-- 1 root 1856 Aug 22 2015 usr/share/terminfo/73/screen-256color-s
您可能会注意到一些细节:
在OSX上,默认文件系统忽略大小写,因此 s
以十六进制编码(使其与 S
<不同/强>)
条目的大小略有不同。 Apple提供了旧版本的终端数据库,缺少某些功能。
使用toe
,我看到了:
--> /usr/local/ncurses/share/terminfo ----> /usr/share/terminfo ------> /opt/local/share/terminfo *-*-*-: screen-256color GNU Screen with 256 colors *-*-*-: screen-256color-bce GNU Screen with 256 colors and BCE *-*-*-: screen-256color-bce-s GNU Screen with 256 colors using BCE and status line *-*-*-: screen-256color-s GNU Screen with 256 colors and status line
并比较系统与MacPorts:
--- macports 2017-04-26 04:38:21.000000000 -0400
+++ system 2017-04-26 04:40:08.000000000 -0400
@@ -1,19 +1,19 @@
-# Reconstructed via infocmp from file: /opt/local/share/terminfo/73/screen-256color
+# Reconstructed via infocmp from file: /usr/share/terminfo/73/screen-256color
screen-256color|GNU Screen with 256 colors,
am, km, mir, msgr, xenl,
- colors#256, cols#80, it#8, lines#24, pairs#32767,
+ colors#256, cols#80, it#8, lines#24, ncv#3, pairs#32767,
acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
clear=\E[H\E[J, cnorm=\E[34h\E[?25h, 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,
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
- cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)0, flash=\Eg, home=\E[H, ht=^I, hts=\EH,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0,
- kbs=^H, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
+ cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+ dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
+ flash=\Eg, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
+ il=\E[%p1%dL, il1=\E[L, ind=^J, initc@, is2=\E)0, kbs=^H,
+ kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+ kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
@@ -22,6 +22,6 @@
rmul=\E[24m, rs2=\Ec\E[?1000l\E[?25h, sc=\E7,
setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
- sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;m%?%p9%t\016%e\017%;,
+ sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smacs=^N, smcup=\E[?1049h, smir=\E[4h,
smkx=\E[?1h\E=, smso=\E[3m, smul=\E[4m, tbc=\E[3g,
答案 8 :(得分:0)
您在远程计算机上缺少与“ xterm-256color”匹配的terminfo
文件。
屏幕不知道如何模拟您要求的终端(xterm-256color),因为它没有描述您正在使用的终端的文件(xterm-256color)。
您可以更改ENV变量TERM
,以请求远程计算机确实具有的终端仿真。例如:export TERM=vt220
,但是这将假定您的遥控器具有vt220 terminfo文件,并且您不会获得漂亮的颜色,并且您还必须做其他乏味的工作才能使其保持不变。更好...
如果您的本地计算机上有terminfo文件,而远程计算机却没有,例如,与QNAP / QNAS / busybox / rpi / router / modem / IOTdevice通讯的linux / macos,则...
您可以将必要的文件复制到该文件,并指示远程终端将其用于屏幕。例如:
[local] $ scp /lib/terminfo/x/xterm-256color john@nasbox:xterm-256color
[local] $ ssh john@nasbox
[remote] $ ls
xterm-256color
[remote] $ TERMINFO='/share/homes/john/xterm-256color' screen
此时屏幕应该可以工作了。您的本地计算机可能在其他位置具有terminfo
目录(/etc/terminfo/
和/usr/share/terminfo/
是常见的替代方法;您可能必须四处寻找才能找到自己的目录)。
要更永久地进行设置,请将其移动到主目录中的“ .terminfo”目录(或其他您知道的地方)。例如:
[remote] mkdir -p .terminfo/x
[remote] mv xterm-256color .terminfo/x
[nasbox] screen
相同的技术应适用于其他终端仿真。 ENV变量TERM
决定了它应该尝试模拟的终端,并且同名文件提供了实现所有目标的魔术代码。
答案 9 :(得分:0)
另一种情况,例如从screen
内部升级到Debian Buster。
Terminfo xterm-256colour
的格式已更改,因此screen
无法恢复上一个会话。
您可以使用export TERM=xterm
关闭屏幕会话,然后重新启动屏幕。这次它将使用正确的terminfo文件,因此它将成功。
答案 10 :(得分:0)
我在完全不同的环境中遇到了同样的问题。
通过输入 infocmp,我收到无法打开 terminfo 的消息。但它也告知了它试图获得的路径。我所做的只是用正确的术语(xterm-256color)创建该路径。使用 find * 我在另一个目录中找到它并复制到新目录中。
答案 11 :(得分:-2)
您只需要将/usr/share/terminfo/x/xterm-256color
复制到您要连接的服务器上。
答案 12 :(得分:-2)
如果导出变量,别忘了刷新终端源...
source ~/.bashrc
或只是打开一个新终端。可能就是为什么原始海报在导出时遇到问题。