2

Я получаю доступ к новой установке Ubuntu 12.10 через PuTTY. Я пытаюсь заставить мою оболочку отображаться в цвете. Цвет отлично работает в интерактивных приложениях, таких как 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)?

2 ответа2

3

Проблема заключалась в том, что ~/.bashrc не был получен при входе непосредственно через PuTTY, а при использовании screen сессии. По-видимому, вход в систему через PuTTY считается « удаленной, не входящей в систему, не интерактивной оболочкой ».

Как отметил @terdon, ls , grep и др. По умолчанию бесцветны, но в моем .bashrc есть псевдоним для использования цветов.

Мое исправление было в источнике .bashrc в моем .bash_profile:

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi
1

ls т. д. не используют цвет по умолчанию, если вы хотите иметь цвет, вам нужно установить конкретную опцию. Вы можете сделать это глобально, установив псевдонимы в вашем файле $HOME/.bashrc (на удаленном сервере):

  1. Установите $PS1 (это из моего .bashrc., Вы можете изменить его по желанию):

    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;33m\]\u@\h\[\033[01;34m\] \W \\$\[\033[00m\] '
    

    Это выглядит так:

  2. Установите псевдонимы для (в этом примере ls и grep вам нужно найти соответствующую опцию для git и любых других программ, которые вы хотите всегда раскрашивать):

    alias grep='grep --color' 
    alias ls='ls --color=tty'
    

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .