ホスト名を変更しましたが、なぜbash PS1プロンプトが変更されないのですか?

ホスト名を変更しましたが、なぜbash PS1プロンプトが変更されないのですか?

/ etc / hostnameを編集してホスト名を変更し、コマンドを使用して新しいホスト名を表示できhostnameますhostname -F

ただし、シェルプロンプトにはまだ古いホスト名が表示されます。

ちなみに、これはUbuntu 11.0.4です。プロンプトは私に設定されており、.bashrc編集していません。ログアウトまたは再起動しても効果はありません。

標準Ubuntuの関連部分.bashrc

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

(ログイン時に$ debian_chrootが設定されていません...)

ホスト名は特殊文字\ hで選択されているようです。

これはシェルに報告されたPS1設定です。

PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

これがPS1が示すものです:

username@oldhostname:~$ 

Warrenの答えに出てきた正確なコマンドを使ってプロセスを繰り返しました。ホスト名は再起動するまで有効でしたが、/etc/hostname新しいホスト名が含まれていても失われたことがわかりました。

ベストアンサー1

私はKeithとWarrenの以前の答えと実際の解決策に基づいて自分の質問に答えています。認識された問題は「ホスト名を変更しましたが、なぜbash PS1プロンプトは変更されませんでしたか?」実際の問題は「再起動時にシステムが古いホスト名に戻るのはなぜですか?」

この特別なケースに対する答えは次のとおりです。DHCP はローカル設定を無視するように設定されます。

ホスト名を変更する効率的な方法

以下はUbuntuについてです。ymmv

  1. このファイルを編集して永続ホスト名を変更します/etc/hostname

    echo 'mynewhostname' | sudo tee /etc/hostname
    
  2. 実行中のシステムのホスト名を変更するには、次のようにします。CPU名注文する。ステップ1がないと、再起動時にリセットされます。設定したばかりの値を使用することをお勧めします。

    sudo hostname -F /etc/hostname
    

    またはそれに対応するもの:

    sudo hostname `cat /etc/hostname`
    
  3. .NETで完全修飾ドメイン名(FQDN)を設定します/etc/hosts

    抜粋:

    127.0.0.1    mynewhostname.mydomainname.com    mynewhostname
    
  4. コンピュータがDHCPクライアントを実行していることを確認してください。 IPアドレスに加えて、DHCPサーバーはホスト名やDNS解決などの設定を上書きすることもできます。 「クラウド」ホスティングサービスは、設定ファイルを編集しなくてもディスク上のコンピュータイメージを複数回再利用できるようにすることができます。

    存在する場合は、DHCPクライアント設定ファイルを編集して/etc/default/dhcpcdこのディレクティブをコメントアウトしますSET_HOSTNAME

    #SET_HOSTNAME='yes'
    
  5. 可能であれば、システムを再起動し、名前が変更されていることを確認してください。

    hostname
    

ステップ4は私にとって新しいものであり、私を戸惑いました。この答えにプロセス全体を文書化するのが役に立つと思いました。このステップは(Linode)で提供されました。私のホスティングサービスの説明本当にきちんと読まなければならなかったのに。

おすすめ記事