SSH接続を閉じた後にMac OS Xターミナルのタイトルを復元する[複製]


18

重複の可能性:
sshから戻ってきたときに、OS Xに端末タイトルを元のタイトルに戻すにはどうすればよいですか?

Mac OS XターミナルでSSH接続からログアウトするたびに、ウィンドウタイトルに過去のログイン情報が表示されます。

Webでの検索で見つかったほとんどのソリューションには、この質問関連するブログ投稿のようにconエスケープシーケンスを再生することが含まれます。

これはターミナルの問題ではなく、SSHの問題のようです。そのため、もっと簡単な方法があるのではないかと考えていました(SSHクライアントの設定を編集しているのでしょうか?)。

回答:


26

SSHの問題ではありません。問題は、リモートホスト上のシェルがエスケープシーケンスを送信してターミナルウィンドウのタイトルを設定するように構成されていることです。これはかなり一般的な設定です。リンク先のブログ投稿に記載されている解決策は正しいです。

最も簡単で直接的な解決策は、ログアウト時にウィンドウタイトルをリセットするように同じリモートシェルを構成することです。たとえば、リモートシェルがbashの場合、これを〜/ .bash_logoutに配置します。

printf '\e]0;\a'

あるいは、ローカルシェルでウィンドウタイトルを有用なものに更新したい場合は、とにかくそれを行います。ssh接続が終了すると、ローカルシェルは、古い値を残すのではなく、ウィンドウタイトルを別のものに設定します。たとえば、これを〜/ .bashrcに入れます。

PS1='\[\e]1;\s\$ \W\a\e]2;\u@\h\a\]'"$PS1"

これにより、ユーザーとホスト名がウィンドウタイトル(通常、リモートシェルが行うように構成されている)に配置され、シェルの名前とタイプ(通常のユーザーまたはルート)および現在の作業ディレクトリが表示されるようにタブタイトルが設定されます。

〜/ .bash_profile(または〜/ .profile)がまだない場合は、作成して〜/ .bashrcを実行し、〜/ .bashrcがログインシェルと非ログインシェルに適用されるように注意してください。

if [ -f $HOME/.bashrc ]; then
    . $HOME/.bashrc
fi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.