
私は2つの異なるサーバー(両方ともLinuxを実行しています)を持ち、SSH経由で接続します。
ログイン後、すべての端末の背景は同じように見えます。サーバーごとに異なる色のテーマや背景を設定したいです。たとえば、「server-1」に ssh すると端末の背景がグレーになり、「server-2」にログインすると青に変わります。
この目標をどのように達成できますか?
注:私は「MATE端末」を使用しています。
答え1
XTermでは、次のものを使用できます。制御シーケンス.bashrc または同様のファイルにあります。良い:
if [ "${-//[!i]/}" = 'i' ]; then case $HOSTNAME in server1) echo -e '\e]11;darkgray\a\e]10;black\a' ;; server2) echo -e '\e]11;darkblue\a\e]10;gray\a' ;; esac fi
他の端末エミュレータにも同様の機能があります。
Puttyでは色を直接設定できますが、XTermのこれらの制御シーケンスが機能しているかどうかはわかりません(ほぼテストしていませんが、私の設定も見ていません)。
tty
[ -t 1 ]
stdoutをターミナル(orの終了状態など)にするのではなく、シェルインタラクティブフラグを確認する理由は、場合によっては(例えばAnsible)バッチにtty()を割り当てることができるからです。 stdoutに出力すると、ssh -tt
ストリームが「クリーン」になり、問題が発生する可能性があります(例:Ansible)。
注:Centos 7で利用可能なbash、mksh、zsh、およびkshのバージョンをテストしましたが、[ "${-//[!i]/}" = 'i' ]
すべてのバージョンで動作します。