我正在尝试从屏幕内的一台 Ubuntu 主机到另一台主机建立 ssh 连接(通过 lsh)。如果我尝试mc
在那之后立即运行,则会收到以下错误:
Unknown terminal: screen-256color-s
Check the TERM environment variable.
Also make sure that the terminal is defined in the terminfo database.
Alternatively, set the TERMCAP environment variable to the desired
termcap entry.
问题是——谁造成了这次失败?是本地主机吗?偏僻的?缺少一些包(哪个?),某些东西不是由lsh-server
?完成的或客户?
需要明确的是 - 我不想要像“TERM=xterm mc”这样的解决方法,我希望能够在(远程)控制台上使用支持 256 种颜色的视觉主题。
答案1
只需设置另一个术语,例如
TERM="rxvt"
或者
TERM="xterm"
或者
TERM="vt102"
也许export TERM
也有帮助。
该变量由和程序(例如或 )TERM
使用,用于从执行命令的 terminfo/termcap 数据库中读取终端转义码,因此在您的情况下是在远程系统中。curses
termcap
mc
dialog
要支持“screen-256color-s”术语类型,必须在数据库中安装此终端类型。
作为一个很好的起点阅读man 5 terminfo
。
答案2
最后,我设法找出提供 screen-256-color-s 的“明显”包(必须安装在远程计算机上):
sudo apt install ncurses-term
为我解决了这个问题:漂亮的 256 色,不需要使用环境变量来解决丑陋的问题。万岁! :)
答案3
GNUscreen
正在本地设置$TERM
,ssh
并将该值传递到远程端。您可以做一些事情。
- 检测
screen-256-color-s
远程端并设置为更理智。从此你可以拥有case $TERM in screen-256*) TERM=screen;; esac
。 - 从本地端,已
screen
设置终端。在你的~/.screenrc
文件中有:term screen
. - 如果您有
screen
打开ssh
呼叫的命令,请添加一个-T
选项:screen -T screen ssh user@host
- 在本地
~/.bashrc
,如果检测到与上面远程端类似的不兼容终端,请设置终端。