我正在通过 PuTTY 访问新的 Ubuntu 12.10 安装。我试图让我的 shell 显示彩色。颜色在交互式应用程序中工作正常,例如vim
,但我想在我的 $PS1 提示符git
、、ls
等中获得颜色。
当我使用screen
会话时,颜色会神奇地起作用。没有会话screen
就没有颜色。
无屏幕:
$ set |grep -i term
TERM=xterm
带屏幕:
$ set |grep -i term
TERM=screen
TERMCAP=$'SC|screen|VT 100/ANSI X3.64 virtual terminal:\\\n\t:DO=\\E[%dB:LE=\\E[%dD:RI=\\E[%dC:UP=\\E[%dA:bs:bt=\\E[Z:\\\n\t:cd=\\E[J:ce=\\E[K:cl=\\E[H\\E[J:cm=\\E[%i%d;%dH:ct=\\E[3g:\\\n\t:do=^J:nd=\\E[C:pt:rc=\\E8:rs=\\Ec:sc=\\E7:st=\\EH:up=\\EM:\\\n\t:le=^H:bl=^G:cr=^M:it#8:ho=\\E[H:nw=\\EE:ta=^I:is=\\E)0:\\\n\t:li#62:co#115:am:xn:xv:LP:sr=\\EM:al=\\E[L:AL=\\E[%dL:\\\n\t:cs=\\E[%i%d;%dr:dl=\\E[M:DL=\\E[%dM:dc=\\E[P:DC=\\E[%dP:\\\n\t:im=\\E[4h:ei=\\E[4l:mi:IC=\\E[%d@:ks=\\E[?1h\\E=:\\\n\t:ke=\\E[?1l\\E>:vi=\\E[?25l:ve=\\E[34h\\E[?25h:vs=\\E[34l:\\\n\t:ti=\\E[?1049h:te=\\E[?1049l:us=\\E[4m:ue=\\E[24m:so=\\E[3m:\\\n\t:se=\\E[23m:mb=\\E[5m:md=\\E[1m:mr=\\E[7m:me=\\E[m:ms:\\\n\t:Co#8:pa#64:AF=\\E[3%dm:AB=\\E[4%dm:op=\\E[39;49m:AX:\\\n\t:vb=\\Eg:G0:as=\\E(0:ae=\\E(B:\\\n\t:ac=\\140\\140aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++,,hhII00:\\\n\t:po=\\E[5i:pf=\\E[4i:k0=\\E[10~:k1=\\EOP:k2=\\EOQ:k3=\\EOR:\\\n\t:k4=\\EOS:k5=\\E[15~:k6=\\E[17~:k7=\\E[18~:k8=\\E[19~:\\\n\t:k9=\\E[20~:k;=\\E[21~:F1=\\E[23~:F2=\\E[24~:F3=\\E[1;2P:\\\n\t:F4=\\E[1;2Q:F5=\\E[1;2R:F6=\\E[1;2S:F7=\\E[15;2~:\\\n\t:F8=\\E[17;2~:F9=\\E[18;2~:FA=\\E[19;2~:kb=\177:K2=\\EOE:\\\n\t:kB=\\E[Z:kF=\\E[1;2B:kR=\\E[1;2A:*4=\\E[3;2~:*7=\\E[1;2F:\\\n\t:#2=\\E[1;2H:#3=\\E[2;2~:#4=\\E[1;2D:%c=\\E[6;2~:%e=\\E[5;2~:\\\n\t:%i=\\E[1;2C:kh=\\E[1~:@1=\\E[1~:kH=\\E[4~:@7=\\E[4~:\\\n\t:kN=\\E[6~:kP=\\E[5~:kI=\\E[2~:kD=\\E[3~:ku=\\EOA:kd=\\EOB:\\\n\t:kr=\\EOC:kl=\\EOD:km:'
环境变量是什么TERMCAP
?如何通过 进行设置screen
?如何才能在 之外进行设置screen
(无需将其复制粘贴到我的 中.bashrc
)?
答案1
问题是,~/.bashrc
直接通过 PuTTY 登录时不会出现该问题,但使用会话时会出现该问题screen
。显然,通过 PuTTY 登录被视为“远程非登录非交互shell“。
正如 @terdon 指出的那样ls
,grep
等默认都是无色的,但我.bashrc
将其别名为使用颜色。
我的修复方法是在我的 .bash_profile 中获取 .bashrc 源:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
答案2
ls
等默认不使用颜色,如果您想要有颜色,则需要设置特定选项。您可以通过在文件中设置别名$HOME/.bashrc
(在远程服务器上)来全局执行此操作:
设置
$PS1
(这个来自我的.bashrc,你可以根据需要更改它):PS1='${debian_chroot:+($debian_chroot)}\[\033[01;33m\]\u@\h\[\033[01;34m\] \W \\$\[\033[00m\] '
看起来是这样的:
设置别名(在此示例中
ls
,grep
您需要找到适当的选项git
以及您希望始终具有颜色的任何其他程序):alias grep='grep --color' alias ls='ls --color=tty'