![启动屏幕会话时保留 bash 提示颜色](https://linux22.com/image/807973/%E5%90%AF%E5%8A%A8%E5%B1%8F%E5%B9%95%E4%BC%9A%E8%AF%9D%E6%97%B6%E4%BF%9D%E7%95%99%20bash%20%E6%8F%90%E7%A4%BA%E9%A2%9C%E8%89%B2.png)
当我通过 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\]\$
但是一旦我启动屏幕,颜色就会消失。其他一切都很好,我的屏幕可以支持颜色(请注意,这里的.
和是蓝色),但提示不是。理论上一切都应该完全相同。$PS1 在屏幕内:..
ls -al
${debian_chroot:+($debian_chroot)}\u@dev:\w\$
编辑:这只是普通的屏幕。
答案1
您可以在您的 .bashrc 中编辑以下行(在我的 .bashrc 中它是 #39):
#force_color_prompt=yes
改成:
force_color_prompt=yes
如果您从不支持颜色的地方登录,这可能会令人烦恼,但我认为这种情况不太可能发生。
答案2
Screen 通常使用特殊的终端类型,例如“screen”,或者如果你在 .screenrc 中设置它,则使用“screen-256color”。
只需在 .bashrc 中查找颜色检测案例语句并将屏幕添加到列表中。
例如这样的事情:
case "$TERM" in
xterm)
color_prompt=yes
;;
screen)
color_prompt=yes
;;
*256*)
color_prompt=yes
;;
esac
我使用 256 色终端类型,因此我只需要256case 语句,因为它捕获 xterm-256color、gnome-256color 和 screen-256color。您的里程可能会有所不同。
答案3
该.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"
答案4
将其添加到您的 ~/.screenrc
shell -$SHELL