Сохранение цветов подсказки 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 ответов

Ваша установка 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
ответ дан 31 July 2018 в 11:17

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

shell -$SHELL
1
ответ дан 2 August 2018 в 03:58
  • 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
ответ дан 2 August 2018 в 03:58

Экран обычно использует специальный тип терминала, например «экран», или если вы установили его в вашем .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
ответ дан 2 August 2018 в 03:58

Ваша установка 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
ответ дан 2 August 2018 в 03:58

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

shell -$SHELL
1
ответ дан 4 August 2018 в 20:01
  • 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
ответ дан 4 August 2018 в 20:01

Экран обычно использует специальный тип терминала, например «экран», или если вы установили его в вашем .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
ответ дан 4 August 2018 в 20:01

Ваша установка 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
ответ дан 4 August 2018 в 20:01

Добавьте это в свой ~ / .screenrc

  shell - $ SHELL  
1
ответ дан 6 August 2018 в 04:03

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

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

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

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

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

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

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

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

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

  echo "$  TERM "#, вероятно, напечатает" screen "tput setaf 2 |  cat -vte # должен печатать «^ [[32m« echo »$ (tput setaf 2)« green »$ (tput sgr0)« # должен печатать «зеленый» в зеленом  
2
ответ дан 6 August 2018 в 04:03

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

  # terminfo и termcap для симпатичного 256-цветного терминала # позволяют выделить смелые цвета - по какой-то причине необходимо attrcolor b ".I"  # tell screen, как установить цвета.  AB = фон, AF = передний план termcapinfo xterm 'Co # 256: AB = \ E [48; 5;% dm: AF = \ E [38; 5;% dm'  

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

  jake @ daedalus: ~ $ cat .screenrc startup_message off # skip splash screen vbell off # Убить раздражающую собаку # Voodoo hardstatus  alwayslastline hardstatus string '% {= wk}% - Lw% {= KW}% 50 & gt;% n% f *% t% {= dK}% + Lw% & lt;'  # terminfo и termcap для красивого 256-цветного терминала # допускают смелые цвета - по какой-то причине необходимо attrcolor b ".I" # tell screen, как устанавливать цвета.  AB = фон, AF = передний план termcapinfo xterm 'Co # 256: AB = \ E [48; 5;% dm: AF = \ E [38; 5;% dm' # стереть фон с текущим bg цветом defbce "on" [  ! d3] 
2
ответ дан 6 August 2018 в 04:03

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

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

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

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

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

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

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

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

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

  echo "$  TERM "#, вероятно, напечатает" screen "tput setaf 2 |  cat -vte # должен печатать «^ [[32m« echo »$ (tput setaf 2)« green »$ (tput sgr0)« # должен печатать «зеленый» в зеленом  
2
ответ дан 7 August 2018 в 22:02

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

  # terminfo и termcap для симпатичного 256-цветного терминала # позволяют выделить смелые цвета - по какой-то причине необходимо attrcolor b ".I"  # tell screen, как установить цвета.  AB = фон, AF = передний план termcapinfo xterm 'Co # 256: AB = \ E [48; 5;% dm: AF = \ E [38; 5;% dm'  

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

  jake @ daedalus: ~ $ cat .screenrc startup_message off # skip splash screen vbell off # Убить раздражающую собаку # Voodoo hardstatus  alwayslastline hardstatus string '% {= wk}% - Lw% {= KW}% 50 & gt;% n% f *% t% {= dK}% + Lw% & lt;'  # terminfo и termcap для красивого 256-цветного терминала # допускают смелые цвета - по какой-то причине необходимо attrcolor b ".I" # tell screen, как устанавливать цвета.  AB = фон, AF = передний план termcapinfo xterm 'Co # 256: AB = \ E [48; 5;% dm: AF = \ E [38; 5;% dm' # стереть фон с текущим bg цветом defbce "on" [  ! d3] 
2
ответ дан 7 August 2018 в 22:02

Добавьте это в свой ~ / .screenrc

  shell - $ SHELL  
1
ответ дан 7 August 2018 в 22:02

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

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

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

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

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

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

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

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

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

  echo "$  TERM "#, вероятно, напечатает" screen "tput setaf 2 |  cat -vte # должен печатать «^ [[32m« echo »$ (tput setaf 2)« green »$ (tput sgr0)« # должен печатать «зеленый» в зеленом  
2
ответ дан 10 August 2018 в 10:16

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

  # terminfo и termcap для симпатичного 256-цветного терминала # позволяют выделить смелые цвета - по какой-то причине необходимо attrcolor b ".I"  # tell screen, как установить цвета.  AB = фон, AF = передний план termcapinfo xterm 'Co # 256: AB = \ E [48; 5;% dm: AF = \ E [38; 5;% dm'  

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

  jake @ daedalus: ~ $ cat .screenrc startup_message off # skip splash screen vbell off # Убить раздражающую собаку # Voodoo hardstatus  alwayslastline hardstatus string '% {= wk}% - Lw% {= KW}% 50 & gt;% n% f *% t% {= dK}% + Lw% & lt;'  # terminfo и termcap для красивого 256-цветного терминала # допускают смелые цвета - по какой-то причине необходимо attrcolor b ".I" # tell screen, как устанавливать цвета.  AB = фон, AF = передний план termcapinfo xterm 'Co # 256: AB = \ E [48; 5;% dm: AF = \ E [38; 5;% dm' # стереть фон с текущим bg цветом defbce "on" [  ! d3] 
2
ответ дан 10 August 2018 в 10:16

Добавьте это в свой ~ / .screenrc

  shell - $ SHELL  
1
ответ дан 10 August 2018 в 10:16

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

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

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

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

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

2
ответ дан 13 August 2018 в 16:39

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

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

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

  echo "$  TERM "#, вероятно, напечатает" screen "tput setaf 2 |  cat -vte # должен печатать «^ [[32m« echo »$ (tput setaf 2)« green »$ (tput sgr0)« # должен печатать «зеленый» в зеленом  
2
ответ дан 13 August 2018 в 16:39

Добавьте это в свой ~ / .screenrc

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

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

  # terminfo и termcap для симпатичного 256-цветного терминала # позволяют выделить смелые цвета - по какой-то причине необходимо attrcolor b ".I"  # tell screen, как установить цвета.  AB = фон, AF = передний план termcapinfo xterm 'Co # 256: AB = \ E [48; 5;% dm: AF = \ E [38; 5;% dm'  

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

  jake @ daedalus: ~ $ cat .screenrc startup_message off # skip splash screen vbell off # Убить раздражающую собаку # Voodoo hardstatus  alwayslastline hardstatus string '% {= wk}% - Lw% {= KW}% 50 & gt;% n% f *% t% {= dK}% + Lw% & lt;'  # terminfo и termcap для красивого 256-цветного терминала # допускают смелые цвета - по какой-то причине необходимо attrcolor b ".I" # tell screen, как устанавливать цвета.  AB = фон, AF = передний план termcapinfo xterm 'Co # 256: AB = \ E [48; 5;% dm: AF = \ E [38; 5;% dm' # стереть фон с текущим bg цветом defbce "on" [  ! d3] 
2
ответ дан 13 August 2018 в 16:39

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

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