画面内にネストされたSSHセッションには色はありません。

画面内にネストされたSSHセッションには色はありません。

byobu/screen ウィンドウ内にネストされた SSH セッションを維持しようとしています。 Windowsでは、Puttyを使用してSSH経由で接続することもできます。

ただし、ネストされたSSHセッションには色はありません。これは私が言わなければならないでしょう:

色が足りない

左側はbyobuに接続されていますが、wreckcreations色はありません。右側では、Puttyをwreckcreations色に直接接続します。通常、byobuはローカルで作業するときに色付けされます。

$TERM、およびその他の変数を試してみましたが、$PSI役に立ちませんでした。何がこのようなことを引き起こす可能性があるかご存知ですか?

答え1

それはたくさんあるかもしれません。

次の出力を提供します。

echo $TERM
echo $LS_COLORS
typeset -p LS_COLORS
alias ls
tput setaf 1 | od -c
echo "$(tput setaf 1)red$(tput sgr0)"

予想される結果:

xterm (optional, see below)
no=00:... (or similar, should not be empty)
declare -x LS_COLORS="no=00:..." (ditto)
alias ls='ls --color=auto' (or similar)
0000000 033   [   3   1   m
0000005
red (in red)

私の推測:TERM何かが珍しいものに設定されており、dircolorsはこれについて知らないので、lsどの色を使うべきかわかりません。

この場合、byobu/screenセッションで上記のコマンドを実行すると、次のようになります。

screen (or screen-something)
(nothing)
(nothing)
0000000 033   [   3   1   m
0000005
red (in red)

次のコマンドを実行して、これらのケースであることを確認してください。

dircolors -p | grep "^TERM $TERM$"

何も印刷されないことを願っています。

構成に応じて、最も簡単な回避策は次のとおりです。

dircolors -p > ~/.dircolors
echo "TERM $TERM" >> ~/.dircolors

関連情報