
答え1
これを行う 1 つの方法は、LocalCommand
の機能を使用することですssh
。この方法では、リモート ホストへの接続が成功した後に、ターミナルのタイトルを変更するエスケープ シーケンスが印刷されます。
~/.ssh/config
次のような内容を編集または作成します。
Host *
PermitLocalCommand yes
LocalCommand printf '\033]0;%%s\007' '%h'
この方法の欠点は、リモート サーバーからログアウトした後もタイトルが変更されたままになることです。これを回避するには、次の操作を実行します。
printf '\033]0;%s\007' "$(uname -n)"
これを自動化したい場合は、次の関数を使用できます。
lssh () {
/path/to/ssh "$@"
printf '\033]0;%s\007' "$(uname -n)"
}
この回答では、端末エミュレータが同じエスケープシーケンスXTerm など。そうでない場合は、特定のターミナル エミュレータのドキュメントを確認してください。
GNU screen の場合の注意点は、1 つのターミナル ウィンドウに複数の仮想ウィンドウが含まれる場合があることです。その場合、別のエスケープ シーケンス ( \033k%s\033\\
) を使用して、1 つの仮想ウィンドウの内部タイトルを設定できます。