Terminatorにタイトルバーにリモートホスト名を表示させるにはどうすればよいですか? [コピー]

Terminatorにタイトルバーにリモートホスト名を表示させるにはどうすればよいですか? [コピー]

LinuxシステムにSSHで接続すると、Terminatorのタイトルバーにuser@hostnameが表示されます。ここで、ホスト名はSSHで接続するコンピュータです。~から、SSH経由で接続するコンピュータの代わりに入力する(つまり、タイトルバーはリモートデバイス$ PS1の代わりにローカルデバイスからミラーリングされます。)同時に4台のコンピュータすべてにSSHで接続してプロンプトを表示できない場合は非常に混乱します(すべてのコンピュータのタイトルバーが同じであるため) !).

Terminatorに正しいホスト名を表示させるにはどうすればよいですか?

答え1

ユーザーは確かにプロンプ​​トをカスタマイズし、端末のタイトルを更新することができますが、ほとんどはデフォルトのシェル動作を使用します。

ローカルコンピュータがプロンプトの副作用としてタイトル文字列を設定し、リモートコンピュータがタイトルを変更しないようです。

これを考慮すると、たとえば、次のラッパースクリプトを使用して、リモートシステムの干渉なしにヘッダーを更新できますssh

#!/bin/bash
# trim parameters, leaving just the last (user@hostname or just hostname)
title=$(echo "$*" | sed -e 's/^.* //')
printf '\033]0;%s\007' "$title"
/usr/bin/ssh "$@"

実行可能ファイルのパスの前に置くと/usr/bin呼び出すことができます。それ「ssh」を使用して、各リモートシステムにアクセスするときにヘッダー文字列を設定します。 SSHを終了すると、ローカルプロンプトはヘッダー文字列をローカルシステムにリセットします。

その後のコメントでは、OPは接続がIPアドレスに対して行われたと述べました。リモートコンピュータの場合持つホスト名を使用すると、プロセスがより明確になる(DNS以外の場合)、ローカルコンピュータのホスト名を収集できます/etc/hosts

参考までに:

関連情報