god*_*god 10 ssh gnu-screen terminal-multiplexer terminal
我正在尝试从一个 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.
Run Code Online (Sandbox Code Playgroud)
问题是——是谁造成了这次失败?是本地主机吗?偏僻的?缺少某些包裹(哪个?),某些未完成的东西lsh-server
?或客户?
只是要清楚 - 我不想要像“TERM = xterm mc”这样的解决方法,我希望能够在(远程)控制台上使用支持256色的视觉主题。
只需设置另一个 TERM,例如
TERM="rxvt"
Run Code Online (Sandbox Code Playgroud)
或者
TERM="xterm"
Run Code Online (Sandbox Code Playgroud)
或者
TERM="vt102"
Run Code Online (Sandbox Code Playgroud)
也许也有export TERM
帮助。
该TERM
变量由curses
和termcap
程序使用,例如mc
or dialog
,从 terminfo/termcap 数据库中读取终端转义码,在那里执行命令,因此在您的情况下是在远程系统中。
要支持“screen-256color-s” TERM 类型,必须在数据库中安装此终端类型。
作为一个好的起点阅读man 5 terminfo
。
最后,我设法找出提供 screen-256-color-s 的“明显”包(必须安装在远程机器上):
sudo apt install ncurses-term
Run Code Online (Sandbox Code Playgroud)
为我解决了这个问题:漂亮的 256 种颜色,不需要使用环境变量进行丑陋的解决方法。万岁!:)
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
,如果检测到与上面远程端类似的不兼容终端,请设置终端。