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
。
参考までに:
- オペレーティングシステムの制御(XTerm制御シーケンス)
- 6.3.Xtermタイトルバーの動作(BashプロンプトHOWTO)