Ubuntu Lucidボックスにsshすると、プロンプトはすべてきれいで、色が付いています。私の知る限り、すべてがデフォルトです。これが私の$ 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\$
編集:これは単なるバニラ画面です。
.bashrcで次の行を編集できます(私の.bashrcでは#39です)。
#force_color_Prompt=yes
への変更:
force_color_Prompt=yes
色がサポートされていない場所からログインした場合、これはおそらく煩わしいかもしれません。
.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"
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
Screenは通常、「screen」などの特別な端末タイプを使用するか、.screenrcで「screen-256color」に設定した場合。
.bashrcで色検出caseステートメントを探し、リストに画面を追加するだけです。
たとえば、次のようなもの:
case "$TERM" in
xterm)
color_Prompt=yes
;;
screen)
color_Prompt=yes
;;
*256*)
color_Prompt=yes
;;
esac
私は256色の端末タイプを使用しているため、xterm-256color、gnome-256color、およびscreen-256colorをキャッチするため、256 caseステートメントが必要です。あなたのマイレージは異なる場合があります。 ????
これを〜/ .screenrcに追加します
Shell -$Shell
-T xterm
を使用して画面を呼び出すとうまくいきます。
screen -T xterm
ファイルを変更する必要はありません。