web-dev-qa-db-ja.com

bashにホスト名の概念を更新させる方法

Bashプロンプトにホスト名が表示されます。 hostnameコマンドを使用してホスト名を変更すると、/etc/hosts/etc/hostnameおよび$HOSTNAME、プロンプトは引き続き古い名前を使用します。ログアウトせずにこれを更新することは可能ですか?

4
Sam Brightman

プロンプト設定に\hまたは\Hがある場合、その拡張はシェルの開始時に初期化されるため、bash(exec bash)を再起動する必要があります。それが気になる場合は、プロンプト設定を変更して$HOSTNAMEを出力します。

ホスト名(/bin/hostnameコマンドで報告される)が更新されたときにbashプロンプトを動的に更新する場合は、次のようにします。

[root@foo ~]# PS1='[\u@`/bin/hostname` \W]\$ '
[root@foo ~]# hostname
foo
[root@foo ~]# hostname bar
[root@bar ~]# hostname baz
[root@baz ~]#

それは無駄です(リターンを押すたびにサブシェルを実行します-恐ろしいことではありませんがエレガントではありません)ので、状況が必要な場合にのみこれを使用します。複数のターゲットを生成するために使用されるベースVMテンプレート)で作業するときに使用しますVMインスタンスに関するメタデータがホスト名に示されているインスタンス、さらには次に、カスタムPS1は、ロールVMインスタンスがデプロイされている間、初期ログインセッションの一部として一時的にのみ設定されます。

3
krow10