Gnome-Terminal报告$ TERM为`xterm`

在干净安装Ubuntu 12.10时,默认的gnome-terminal报告$ TERM为xterm,它应该真正报告xterm-256color。 改变这种情况的最佳方法是什么? 我正避免把它放在我的.bashrc中,因为那只是在惹麻烦。

建议您不要更改启动脚本,特别是~/.bashrc 。 在~/.profile使用当前$TERM$COLORTERM任何“终端检测”仅仅是猜测,并且正如您所说,可能在使用其他终端(例如,Putty或xterm)时造成麻烦。 终端模拟器应该设置$TERM ,这应该在shell中更改。

Gnome终端,AFAIK,不提供更改其TERM的配置,但它确实允许您更改启动命令,这就是您所需要的。 这是诀窍:

 Profile Preferences => Title and Command => Run a custom command instead of my shell 

然后使用以下命令:

 env TERM=xterm-256color /bin/bash 

如果它不同,只需用你喜欢的shell替换/bin/bash 。 不,你不能在该行中使用"$SHELL"进行shell自动检测;)你必须对其进行硬编码

用于连接不能做256色的终端。

$COLORTERM专门检测终端会$COLORTERM 。 查找gnome-terminal,xfce4-terminal等, 然后$TERM变量设置为xterm-256color

我这样做:

 if [ "$COLORTERM" = "gnome-terminal" ] || [ "$COLORTERM" = "xfce4-terminal" ] then export TERM=xterm-256color elif [ "$COLORTERM" = "rxvt-xpm" ] then export TERM=rxvt-256color fi 

虽然terminfo确实有xterm + 256color( /usr/share/terminfo/x/xterm+256color ),但termcap只有xterm( /usr/share/vte/termcap/xterm ),所以改变$TERM是不可取的。

无论如何, $TERM不是由gnome-terminal设置的,而是由vte设置的。 可以在编译时(给出configure脚本的选项)或通过调用vte_pty_set_term()函数更改该环境变量的默认值。 看一下gnome-terminal的来源,我看到vte_pty_set_term从未被调用过,所以我可以说没有办法通过编辑gnome-terminal的设置来修改$TERM

你要做的是将以下代码放在~/.profile

 if [ "$TERM" = "xterm" ] then export TERM=xterm-256color fi