屏幕:找不到'xterm-256color'的terminfo条目

Vin*_*wal 37 terminal osx-lion

我跑的时候

screen
Run Code Online (Sandbox Code Playgroud)

在远程主机(运行Linux)上,我得到以下错误:

Cannot find terminfo entry for 'xterm-256color'.
Run Code Online (Sandbox Code Playgroud)

我在Mac OSX Lion上运行终端以访问远程主机.我已经谷歌搜索找出这个问题的解决方案,似乎人们建议做

export TERM=xterm-color
Run Code Online (Sandbox Code Playgroud)

这对我不起作用.

请帮忙.

Big*_*gSN 57

找出支持哪个TERM:

ls /usr/share/terminfo/x
Run Code Online (Sandbox Code Playgroud)

这将为您提供支持的TERM列表,即

xterm
xterm-xfree86
Run Code Online (Sandbox Code Playgroud)

设置环境变量:

export TERM=xterm-xfree86
Run Code Online (Sandbox Code Playgroud)

并运行屏幕:

TERMINFO='/usr/share/terminfo/' screen
Run Code Online (Sandbox Code Playgroud)

  • 我没有用最后一个命令运行屏幕,运行`screen`工作 (3认同)
  • 在QNAP NAS上遇到这个问题,这解决了这个问题.谢谢! (3认同)
  • 我也在QNAP NAS上工作。我只是在`.bashrc`中添加了`export TERMINFO ='/ usr / share / terminfo /',所以现在它和任何其他别名都可以自动处理。**更新固件时,此操作将恢复,**,因此,应在系统之外的某个地方记录这样的添加/更改,以便在新固件映像尚未固定的情况下可以添加它们。如果您不想弄乱安全设置所要求的shell超时,那么使用Screen可以使Shell会话保持活动状态。我还必须添加路径。 (2认同)

ben*_*ich 13

在您使用ssh的终端应用程序中,转到首选项 - >高级 - >将终端声明为: - > xterm-color(或除了xterm-256color之外的其他内容)

这个答案取自对这篇文章的评论,该评论有另一个解决方案:http: //marcoschuh.de/wp/?p = 873


Jür*_*ski 6

如果是我的Buffalo Linkstation,我可以通过以下方式解决它:

cd /lib/terminfo/x
ln -s xterm-color xterm-256color
Run Code Online (Sandbox Code Playgroud)


Joh*_*Mee 6

您在terminfo远程计算机上缺少与“xterm-256color”匹配的文件。

Screen 不知道如何模拟您要求的终端 (xterm-256color),因为它没有描述您正在使用的终端的文件 (xterm-256color)。

您可以更改 ENV 变量TERM以请求远程机器确实具有的终端仿真。例如:export TERM=vt220,但这将假设您的遥控器有一个 vt220 terminfo 文件,并且您不会获得漂亮的颜色,并且您必须做其他繁琐的事情才能使其坚持下去。更好的...

如果您的本地机器有 terminfo 文件,但您的远程机器没有,例如,linux/macos 与 QNAP/QNAS/busybox/rpi/router/modem/IOTdevice 通信,那么...

您可以将必要的文件复制到它并指示您的远程终端将其用于屏幕。例如:

[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
Run Code Online (Sandbox Code Playgroud)

此时屏幕应该可以工作。您的本地机器可能在terminfo其他地方拥有该目录(/etc/terminfo/并且/usr/share/terminfo/是常见的替代品;您可能需要四处寻找才能找到您的)。

要对其进行更永久的设置,请将其移动到主目录中的“.terminfo”目录(或其他地方,如果您更了解)。例如:

[remote] mkdir -p .terminfo/x
[remote] mv xterm-256color .terminfo/x
[nasbox] screen
Run Code Online (Sandbox Code Playgroud)

相同的技术应该适用于其他终端仿真。ENV 变量TERM确定它应该尝试模拟哪个终端,同名文件提供了使这一切发生的魔术代码。


way*_*boy 5

我以前使用默认的 Mac OS X 终端应用程序通过 ssh 访问我基于 Ubuntu 的 tmux,并发现了您描述的问题 - 我的 bash 和 tmux 设置为 screen-256color,该选项甚至不在 Mac 的列表中终端偏好。

我尝试添加以下行:

export TERM=screen-256color
Run Code Online (Sandbox Code Playgroud)

作为启动命令,但它被忽略并在启动时被 xterm-color 覆盖。

我还设法通过选择 Shell > Export Settings 将 Mac Terminal 的设置更改为 screen-256color,然后编辑它生成的 XML 文件,找到 xterm-color 行并将其更改为 screen-256color,然后 Shell > Importing this设置文件。然而,在启动终端后,我发现它仍然用 xterm-color 覆盖了这个设置。

所以我承认并下载了iTerm2,它允许我通过将其输入到纯文本字段(而不是从有限的下拉菜单中进行选择)来更改 screen-256color 设置。这立即生效,甚至无需关闭并重新打开控制台

所以总而言之,我建议使用 iTerm2 而不是默认的 Mac 终端(它似乎不允许对您需要的 $TERM 进行更改)。


小智 5

您可以ncurses-term在远程服务器 (Debian/Ubuntu) 上安装以解决此问题。

  • 最新的 ncurses-term 不再提供 `xterm-256color`,但我确实注意到 `xterm+256color` (它不起作用)。 (2认同)

小智 3

您可能需要在 Linux 主机上安装一个软件包,该软件包提供以下文件之一:

/usr/share/terminfo/x/xterm-256color
/lib/terminfo/x/xterm-256color
Run Code Online (Sandbox Code Playgroud)

例如,在 Ubuntu 上,这是由ncurses-base软件包提供的。