次のbashプロンプト文字列があります。
root@LAB-VM-host:~# echo "$PS1"
${debian_chroot:+($debian_chroot)}\u@\h:\w\$
root@LAB-VM-host:~# hostname
LAB-VM-host
root@LAB-VM-host:~#
ホスト名を with コマンドLAB-VM-host
に変更しても、この bash セッションのプロンプト文字列は変更されません。VM-host
hostname
root@LAB-VM-host:~# hostname VM-host
root@LAB-VM-host:~#
現在のbashセッションのbashプロンプト文字列のホスト名部分を更新する方法はありますか、それとも新しいbashセッションにのみ適用されますか?
答え1
PS1
もう一度エクスポートすると、他の答えからわかるように、Debianは実際に変更されたホスト名を選択しますか?その場合は、次のように更新できます。
export PS1="$PS1"
Debianについてはわかりませんが、OS X Mountain Lionではこれが可能です。いいえどのような影響がありますか?他の答えで提案された明示的なバージョンも同様です(上記とまったく同じです)。
これが機能していても、実行中の各シェルでプロンプトを個別にリセットする必要があります。この場合、新しいホスト名で手動で設定してみてはいかがでしょうか?または、新しいシェルを起動します(を使用してサブシェルとして使用するか、bash
実行中のプロセスをに置き換えますexec bash
)。ホスト名が更新されます。
実行中のすべてのシェルでホスト名の変更を自動的に追跡します。、以下でプロンプトを設定します.bashrc
。
export PS1='\u@$(hostname):\w\$ '
またはあなたの場合:
export PS1='${debian_chroot:+($debian_chroot)}\u@$(hostname):\w\$ '
つまり、\h
プロンプトをに置き換えて$(hostname)
一重引用符で囲む必要があります。これはhostname
印刷されるすべてのプロンプトの前に実行されますが、それで何ですか?コンピュータがひざまずいていません。
答え2
dr01によると、以下を使用する必要があります。
export PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$'
しかし、上記の行は一時的であるため、永久に使用するには、.bashrc
または.profile
答え3
ホスト名はプロンプトで自動的に更新されません。$PS1
変数を再エクスポートする必要があります。
export PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$'
この変数は、.bashrc
出力の行#1と#2に示すように、ユーザーまたは他のBASH構成ファイルにすでに設定されています。ただし、ホスト名が変更された後に新しいプロンプトを更新するには、上記のコマンドを使用して変数を再エクスポートする必要があります。