Сохранение цветов подсказки bash при запуске сеанса экрана

Когда я ssh в поле Ubuntu Lucid, подсказка все красива, с цветами. Насколько я знаю, все по умолчанию. Вот мой внешний экран за $ PS1:

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@dev\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$

Но затем, как только я начну показывать, цвета исчезнут. Все остальное прекрасно, и мой экран может поддерживать цвета (обратите внимание, что . и .. в этом ls -al являются синими), но приглашение нет. Теоретически все должно быть точно таким же. $ PS1 внутри экрана:

${debian_chroot:+($debian_chroot)}\u@dev:\w\$

Before connecting with screen [!d2]

EDIT: Это просто ванильный экран.

6
задан 14 April 2011 в 22:32

55 ответов

Вы можете отредактировать следующую строку в своем .bashrc (это № 39 в моем .bashrc):

#force_color_prompt=yes

Изменить на:

force_color_prompt=yes

Возможно, это возможно раздражает, если вы входите откуда-нибудь, где цвет не поддерживается, но я нахожу его очень маловероятным.

8
ответ дан 25 May 2018 в 23:09
  • 1
    Отлично, это сделало это для меня. Я вижу, что это проблематично, если я случайно прихожу к логину откуда-то без цвета, но это будет довольно редко. Благодаря! – chmullig 4 February 2011 в 20:04
  • 2
    Это изменение необходимо выполнить на сервере, а не на клиенте. – Adam Ryczkowski 27 October 2012 в 14:36

Вы можете отредактировать следующую строку в своем .bashrc (это № 39 в моем .bashrc):

#force_color_prompt=yes

Изменить на:

force_color_prompt=yes

Возможно, это возможно раздражает, если вы входите откуда-нибудь, где цвет не поддерживается, но я нахожу его очень маловероятным.

8
ответ дан 25 July 2018 в 22:32

Вы можете отредактировать следующую строку в своем .bashrc (это № 39 в моем .bashrc):

#force_color_prompt=yes

Изменить на:

force_color_prompt=yes

Возможно, это возможно раздражает, если вы входите откуда-нибудь, где цвет не поддерживается, но я нахожу его очень маловероятным.

8
ответ дан 26 July 2018 в 22:18

Вы можете отредактировать следующую строку в своем .bashrc (это № 39 в моем .bashrc):

#force_color_prompt=yes

Изменить на:

force_color_prompt=yes

Возможно, это возможно раздражает, если вы входите откуда-нибудь, где цвет не поддерживается, но я нахожу его очень маловероятным.

8
ответ дан 31 July 2018 в 11:17

Вы можете отредактировать следующую строку в своем .bashrc (это № 39 в моем .bashrc):

#force_color_prompt=yes

Изменить на:

force_color_prompt=yes

Возможно, это возможно раздражает, если вы входите откуда-нибудь, где цвет не поддерживается, но я нахожу его очень маловероятным.

8
ответ дан 2 August 2018 в 03:58

Вы можете отредактировать следующую строку в своем .bashrc (это № 39 в моем .bashrc):

#force_color_prompt=yes

Изменить на:

force_color_prompt=yes

Возможно, это возможно раздражает, если вы входите откуда-нибудь, где цвет не поддерживается, но я нахожу его очень маловероятным.

8
ответ дан 4 August 2018 в 20:01

Вы можете отредактировать следующую строку в своем .bashrc (это № 39 в моем .bashrc):

  # force_color_prompt = yes  

Изменить на :

  force_color_prompt = yes  

Это может быть неприятно, если вы входите откуда-нибудь, где цвет не поддерживается, но я нахожу его крайне маловероятным. [ ! d4]

8
ответ дан 6 August 2018 в 04:03

Вы можете отредактировать следующую строку в своем .bashrc (это № 39 в моем .bashrc):

  # force_color_prompt = yes  

Изменить на :

  force_color_prompt = yes  

Это может быть неприятно, если вы входите откуда-нибудь, где цвет не поддерживается, но я нахожу его крайне маловероятным. [ ! d4]

8
ответ дан 7 August 2018 в 22:02

Вы можете отредактировать следующую строку в своем .bashrc (это № 39 в моем .bashrc):

  # force_color_prompt = yes  

Изменить на :

  force_color_prompt = yes  

Это может быть неприятно, если вы входите откуда-нибудь, где цвет не поддерживается, но я нахожу его крайне маловероятным. [ ! d4]

8
ответ дан 10 August 2018 в 10:16

Вы можете отредактировать следующую строку в своем .bashrc (это № 39 в моем .bashrc):

  # force_color_prompt = yes  

Изменить на :

  force_color_prompt = yes  

Это может быть неприятно, если вы входите откуда-нибудь, где цвет не поддерживается, но я нахожу его крайне маловероятным. [ ! d4]

8
ответ дан 13 August 2018 в 16:39
  • 1
    Отлично, это сделало это для меня. Я вижу, что это проблематично, если я случайно прихожу к логину откуда-то без цвета, но это будет довольно редко. Благодаря! – chmullig 4 February 2011 в 20:04
  • 2
    Это изменение необходимо выполнить на сервере, а не на клиенте. – Adam Ryczkowski 27 October 2012 в 14:36

Файл .screenrc является для меня загадкой. Моя русалочка, которую я копирую из интернета. Тем не менее, я вижу несколько строк, которые выглядят релевантными для вашей проблемы:

# terminfo and termcap for nice 256 color terminal
# allow bold colors - necessary for some reason
attrcolor b ".I" 
# tell screen how to set colors. AB = background, AF=foreground
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'

Я думаю, что если вы добавите вышеуказанные строки к себе, вы получите цвет. Вот мой весь .screenrc для справки:

jake@daedalus:~$ cat .screenrc 
startup_message off # skip splash screen
vbell off # Kill the annoying dog

# Voodoo
hardstatus alwayslastline
hardstatus string '%{= wk}%-Lw%{= KW}%50>%n%f* %t%{= dK}%+Lw%<'

# terminfo and termcap for nice 256 color terminal
# allow bold colors - necessary for some reason
attrcolor b ".I" 
# tell screen how to set colors. AB = background, AF=foreground
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
# erase background with current bg color 
defbce "on"
2
ответ дан 25 May 2018 в 23:09

Ваша установка PS1 должна быть помещена в .bashrc, а не .bash_profile.

Если это не проблема, отредактируйте свой вопрос, чтобы включить строку, которую вы установили PS1, чтобы .

Вы также можете попробовать выполнить следующие действия:

echo "$TERM"                                 # will probably print "screen"
tput setaf 2 | cat -vte                      # should print "^[[32m"
echo "$(tput setaf 2)"green"$(tput sgr0)"    # should print "green" in green
2
ответ дан 25 May 2018 в 23:09

Экран обычно использует специальный тип терминала, например «экран», или если вы установили его в вашем .screenrc, «screen-256color».

Просто загляните в свой .bashrc для инструкции case распознавания цвета и добавьте экран в список.

Например, что-то вроде этого:

case "$TERM" in
    xterm)
        color_prompt=yes
        ;;
    screen)
        color_prompt=yes
        ;;
    *256*) 
        color_prompt=yes
        ;;
esac

Я использую 256-цветные типы терминалов, поэтому мне просто нужен регистр case 256, так как он ловит xterm-256color, gnome-256color и screen-256color. Ваш пробег может отличаться.

2
ответ дан 25 May 2018 в 23:09

Добавьте это к своему ~ / .screenrc

shell -$SHELL
1
ответ дан 25 May 2018 в 23:09
  • 1
    +1. Это привело меня обратно к моему приятному взгляду на bash на OS X. – funroll 6 December 2013 в 01:10

Экран обычно использует специальный тип терминала, например «экран», или если вы установили его в вашем .screenrc, «screen-256color».

Просто загляните в свой .bashrc для инструкции case распознавания цвета и добавьте экран в список.

Например, что-то вроде этого:

case "$TERM" in
    xterm)
        color_prompt=yes
        ;;
    screen)
        color_prompt=yes
        ;;
    *256*) 
        color_prompt=yes
        ;;
esac

Я использую 256-цветные типы терминалов, поэтому мне просто нужен регистр case 256, так как он ловит xterm-256color, gnome-256color и screen-256color. Ваш пробег может отличаться.

2
ответ дан 25 May 2018 в 23:09

Экран обычно использует специальный тип терминала, например «экран», или если вы установили его в вашем .screenrc, «screen-256color».

Просто загляните в свой .bashrc для инструкции case распознавания цвета и добавьте экран в список.

Например, что-то вроде этого:

case "$TERM" in
    xterm)
        color_prompt=yes
        ;;
    screen)
        color_prompt=yes
        ;;
    *256*) 
        color_prompt=yes
        ;;
esac

Я использую 256-цветные типы терминалов, поэтому мне просто нужен регистр case 256, так как он ловит xterm-256color, gnome-256color и screen-256color. Ваш пробег может отличаться.

2
ответ дан 25 May 2018 в 23:09

Экран обычно использует специальный тип терминала, например «экран», или если вы установили его в вашем .screenrc, «screen-256color».

Просто загляните в свой .bashrc для инструкции case распознавания цвета и добавьте экран в список.

Например, что-то вроде этого:

case "$TERM" in
    xterm)
        color_prompt=yes
        ;;
    screen)
        color_prompt=yes
        ;;
    *256*) 
        color_prompt=yes
        ;;
esac

Я использую 256-цветные типы терминалов, поэтому мне просто нужен регистр case 256, так как он ловит xterm-256color, gnome-256color и screen-256color. Ваш пробег может отличаться.

2
ответ дан 25 May 2018 в 23:09

Экран обычно использует специальный тип терминала, например «экран», или если вы установили его в вашем .screenrc, «screen-256color».

Просто загляните в свой .bashrc для инструкции case распознавания цвета и добавьте экран в список.

Например, что-то вроде этого:

case "$TERM" in
    xterm)
        color_prompt=yes
        ;;
    screen)
        color_prompt=yes
        ;;
    *256*) 
        color_prompt=yes
        ;;
esac

Я использую 256-цветные типы терминалов, поэтому мне просто нужен регистр case 256, так как он ловит xterm-256color, gnome-256color и screen-256color. Ваш пробег может отличаться.

2
ответ дан 25 May 2018 в 23:09

Экран обычно использует специальный тип терминала, например «экран», или если вы установили его в вашем .screenrc, «screen-256color».

Просто загляните в свой .bashrc для инструкции case распознавания цвета и добавьте экран в список.

Например, что-то вроде этого:

case "$TERM" in
    xterm)
        color_prompt=yes
        ;;
    screen)
        color_prompt=yes
        ;;
    *256*) 
        color_prompt=yes
        ;;
esac

Я использую 256-цветные типы терминалов, поэтому мне просто нужен регистр case 256, так как он ловит xterm-256color, gnome-256color и screen-256color. Ваш пробег может отличаться.

2
ответ дан 25 May 2018 в 23:09

Добавьте это к своему ~ / .screenrc

shell -$SHELL
1
ответ дан 25 July 2018 в 22:32
  • 1
    +1. Это привело меня обратно к моему приятному взгляду на bash на OS X. – funroll 6 December 2013 в 01:10

Файл .screenrc является для меня загадкой. Моя русалочка, которую я копирую из интернета. Тем не менее, я вижу несколько строк, которые выглядят релевантными для вашей проблемы:

# terminfo and termcap for nice 256 color terminal # allow bold colors - necessary for some reason attrcolor b ".I" # tell screen how to set colors. AB = background, AF=foreground termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'

Я думаю, что если вы добавите вышеуказанные строки к себе, вы получите цвет. Вот мой весь .screenrc для справки:

jake@daedalus:~$ cat .screenrc startup_message off # skip splash screen vbell off # Kill the annoying dog # Voodoo hardstatus alwayslastline hardstatus string '%{= wk}%-Lw%{= KW}%50>%n%f* %t%{= dK}%+Lw%<' # terminfo and termcap for nice 256 color terminal # allow bold colors - necessary for some reason attrcolor b ".I" # tell screen how to set colors. AB = background, AF=foreground termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' # erase background with current bg color defbce "on"
2
ответ дан 25 July 2018 в 22:32

Экран обычно использует специальный тип терминала, например «экран», или если вы установили его в вашем .screenrc, «screen-256color».

Просто загляните в свой .bashrc для инструкции case распознавания цвета и добавьте экран в список.

Например, что-то вроде этого:

case "$TERM" in xterm) color_prompt=yes ;; screen) color_prompt=yes ;; *256*) color_prompt=yes ;; esac

Я использую 256-цветные типы терминалов, поэтому мне просто нужен регистр case 256, так как он ловит xterm-256color, gnome-256color и screen-256color. Ваш пробег может отличаться.

2
ответ дан 25 July 2018 в 22:32

Ваша установка PS1 должна быть помещена в .bashrc, а не .bash_profile.

Если это не проблема, отредактируйте свой вопрос, чтобы включить строку, которую вы установили PS1, чтобы .

Вы также можете попробовать выполнить следующие действия:

echo "$TERM" # will probably print "screen" tput setaf 2 | cat -vte # should print "^[[32m" echo "$(tput setaf 2)"green"$(tput sgr0)" # should print "green" in green
2
ответ дан 25 July 2018 в 22:32

Добавьте это к своему ~ / .screenrc

shell -$SHELL
1
ответ дан 26 July 2018 в 22:18
  • 1
    +1. Это привело меня обратно к моему приятному взгляду на bash на OS X. – funroll 6 December 2013 в 01:10

Файл .screenrc является для меня загадкой. Моя русалочка, которую я копирую из интернета. Тем не менее, я вижу несколько строк, которые выглядят релевантными для вашей проблемы:

# terminfo and termcap for nice 256 color terminal # allow bold colors - necessary for some reason attrcolor b ".I" # tell screen how to set colors. AB = background, AF=foreground termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'

Я думаю, что если вы добавите вышеуказанные строки к себе, вы получите цвет. Вот мой весь .screenrc для справки:

jake@daedalus:~$ cat .screenrc startup_message off # skip splash screen vbell off # Kill the annoying dog # Voodoo hardstatus alwayslastline hardstatus string '%{= wk}%-Lw%{= KW}%50>%n%f* %t%{= dK}%+Lw%<' # terminfo and termcap for nice 256 color terminal # allow bold colors - necessary for some reason attrcolor b ".I" # tell screen how to set colors. AB = background, AF=foreground termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' # erase background with current bg color defbce "on"
2
ответ дан 26 July 2018 в 22:18

Экран обычно использует специальный тип терминала, например «экран», или если вы установили его в вашем .screenrc, «screen-256color».

Просто загляните в свой .bashrc для инструкции case распознавания цвета и добавьте экран в список.

Например, что-то вроде этого:

case "$TERM" in xterm) color_prompt=yes ;; screen) color_prompt=yes ;; *256*) color_prompt=yes ;; esac

Я использую 256-цветные типы терминалов, поэтому мне просто нужен регистр case 256, так как он ловит xterm-256color, gnome-256color и screen-256color. Ваш пробег может отличаться.

2
ответ дан 26 July 2018 в 22:18

Ваша установка PS1 должна быть помещена в .bashrc, а не .bash_profile.

Если это не проблема, отредактируйте свой вопрос, чтобы включить строку, которую вы установили PS1, чтобы .

Вы также можете попробовать выполнить следующие действия:

echo "$TERM" # will probably print "screen" tput setaf 2 | cat -vte # should print "^[[32m" echo "$(tput setaf 2)"green"$(tput sgr0)" # should print "green" in green
2
ответ дан 26 July 2018 в 22:18

Добавьте это к своему ~ / .screenrc

shell -$SHELL
1
ответ дан 31 July 2018 в 11:17
  • 1
    +1. Это привело меня обратно к моему приятному взгляду на bash на OS X. – funroll 6 December 2013 в 01:10

Файл .screenrc является для меня загадкой. Моя русалочка, которую я копирую из интернета. Тем не менее, я вижу несколько строк, которые выглядят релевантными для вашей проблемы:

# terminfo and termcap for nice 256 color terminal # allow bold colors - necessary for some reason attrcolor b ".I" # tell screen how to set colors. AB = background, AF=foreground termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'

Я думаю, что если вы добавите вышеуказанные строки к себе, вы получите цвет. Вот мой весь .screenrc для справки:

jake@daedalus:~$ cat .screenrc startup_message off # skip splash screen vbell off # Kill the annoying dog # Voodoo hardstatus alwayslastline hardstatus string '%{= wk}%-Lw%{= KW}%50>%n%f* %t%{= dK}%+Lw%<' # terminfo and termcap for nice 256 color terminal # allow bold colors - necessary for some reason attrcolor b ".I" # tell screen how to set colors. AB = background, AF=foreground termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' # erase background with current bg color defbce "on"
2
ответ дан 31 July 2018 в 11:17

Экран обычно использует специальный тип терминала, например «экран», или если вы установили его в вашем .screenrc, «screen-256color».

Просто загляните в свой .bashrc для инструкции case распознавания цвета и добавьте экран в список.

Например, что-то вроде этого:

case "$TERM" in xterm) color_prompt=yes ;; screen) color_prompt=yes ;; *256*) color_prompt=yes ;; esac

Я использую 256-цветные типы терминалов, поэтому мне просто нужен регистр case 256, так как он ловит xterm-256color, gnome-256color и screen-256color. Ваш пробег может отличаться.

2
ответ дан 31 July 2018 в 11:17

Другие вопросы по тегам:

Похожие вопросы: