画面コマンドは、シェルのタイトルを現在のホスト名に設定します。

画面コマンドは、シェルのタイトルを現在のホスト名に設定します。

シェルのタイトルを現在ログインしているホスト名に設定する方法を知りたいです。私のシナリオはこれです。ホストAにログインし、画面を開き、複数の新しいウィンドウを作成し、SSHを介してこのウィンドウの他のホストに接続しました。だから下の画面タイトルに現在のホストが表示されるようにしたいと思います。 私は一番下にあるこの特定の文字列について話しています。

ベストアンサー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画面では、単一の端末ウィンドウに複数の仮想ウィンドウを含めることができることに注意してください。この場合、別のエスケープシーケンス(\033k%s\033\\)を使用して単一の仮想ウィンドウの内部タイトルを設定できます。

おすすめ記事