ご存知のように、デフォルトでは、AWS インスタンスのホスト名は、ip-12-34-56-78.us-west-2.compute.internal
そのホストに ssh するとタブ名が次のように変更されますroot@ip-12-34-56-78
.
私は以下を持っているので~/.ssh/config
:
Host mail.domain.com
Hostname 1.2.3.4
User root
Host web.domain.com
Hostname 5.6.7.8
User root
タブ名を(「実際の」ホスト名の代わりに)私が接続しているリモートホストの「エイリアス」ホスト名に変更する方法があるかどうか疑問に思います。
私の現在のPS1
設定:
PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
SSHラッパーを次に追加してみました~/.bashrc
。
ssh() {
echo -ne "\033]0;${@: -1}\007"
exec ssh $@
}
次に、. ~/.bashrc
以下を実行してテストしますssh web.domain.com
。
- しかし、つながる:タブ名が
web.domain.com
期待どおりに変更されました。 - いつ接続済み:上書きされました
root@ip-5-6-7-8
なぜ?ここに関連する内容はありますかPS1
?
アップロード日: 6月 6日 金曜日 21:58:04 ICT 2014
非常に奇妙なことが起こっています。 AWS インスタンスでのみ発生するようです。他のホストでは、ログイン後もタブ名が保持されます。
PS1
AWS インスタンスでは:
# echo $PS1
[\u@\h \W]\$
PS1
他のホストから:
~ echo $PS1
\[\]\[\][\[\]\t\[\]] \u\[\]@\[\]\h\[\]\[\]:\[\]\w\[\] \[\]
PS1
また、AWSの変数をジョブホストの値に設定しようとしましたが、役に立ちませんでした。
答え1
これは、リモートシェルセッションにログインした後、サーバーのPS1が同じ\033]0;title\007
コマンドシーケンスをユーザーに再送信し、ターミナルプログラムがそれを傍受してそれに応じて表示するためです。ローカルワークステーションでPS1を編集することは実際には効果がありません。
同様の要件がありましたが、リモートシェルのbashrcで次の内容を入力しました。
PS1="\033]0;(tools)\007\015[\u@\h \W]# "
このツールは、タイトルを識別するために使用したい指定された名前です。実際、端末ではタイトルが正しく表示されますが、コマンドプロンプトは私が主に使用するものです。