Liu*_* 刘研 25 ssh terminal environment-variables gnome-terminal
我目前正在使用Fedora 18 gnome-terminal,然后tmux在其中启动了多路复用器。通过命令连接到CentOS 5 服务器后ssh,我发现:
ls 结果没有颜色tmux, screen, hexedit,htop都无法启动,错误消息如下:打开终端失败:缺少或不合适的终端:screen-256color
似乎ssh将 $TERM 环境变量传递给服务器,但我在/etc/ssh/ssh_configFedora 18 的文件中找不到它。
虽然我可以手动更改服务器上的 $TERM 变量,但每次连接时,它都会再次发生。那么如何预防呢?
Sté*_*las 22
$TERM 是告诉应用程序他们正在与哪个终端交谈,以便他们知道如何与之交谈。
将其更改为远程主机支持的值,并尽可能匹配您的终端 ( screen)。
大多数 Linux 系统至少应该有一个screenterminfo 条目。如果不是这样,screen实现的一个超集vt100,并vt100具有普遍性。所以:
TERM=screen ssh host
Run Code Online (Sandbox Code Playgroud)
或者
TERM=vt100 ssh host
Run Code Online (Sandbox Code Playgroud)
如果您确实需要 256 色支持,您可以尝试xterm-256color哪个应该足够接近(screen支持 256 色的方式相同xterm)并告诉应用程序您的终端应用程序支持 256 色并告诉他们如何使用它们。
或者您可以在远程主机上安装 terminfo 条目。
infocmp -x | ssh -t root@remote-host '
cat > "$TERM.info" && tic -x "$TERM.info"'
Run Code Online (Sandbox Code Playgroud)
zaT*_*cky 15
就我而言,我只是在本地桌面上为我的.zshrc(.bashrc如果使用 bash)添加了一个别名:
alias ssh='TERM=xterm ssh'
Run Code Online (Sandbox Code Playgroud)
如果您已经使用了别名,请调整它以包括环境分配。
更改$TERM可能有效,但我不建议这样做,这只是一种解决方法而不是解决方案。
当我在我的系统上遇到这个问题时,我通过为远程系统安装对最常见终端类型的支持来修复它:
yum install ncurses-base对于screen-256color在CentOSyum install ncurses-term对于screen-256color-bce在CentOSapt install ncurses-base两个screen-256color和screen-256color-bce在Debian,Ubuntu和薄荷与 ncurses 相关的软件包还为许多其他终端提供支持,并且它们也可用于所有其他大型发行版。(但对于我的用例和您的问题,这应该是足够的信息)
| 归档时间: |
|
| 查看次数: |
44179 次 |
| 最近记录: |