Я изменил свое имя хоста, почему мой 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:~$ 

Я повторил процесс, используя точную команду в ответе Уоррена. Оказывается, имя хоста работает до перезагрузки, но затем оно теряется, хотя имя /etc/hostname содержит новое имя хоста.

4 Solutions collect form web for “Я изменил свое имя хоста, почему мой bash PS1 не изменился”

Я отвечаю на свой вопрос, в свете предыдущих ответов Кита и Уоррена, и фактического разрешения. Понятая проблема заключалась в том, что «я изменил свое имя хоста, почему мой bash PS1 не изменился?» Фактическая проблема: «Почему моя система вернулась к своему старому имени хоста при перезагрузке?»

Ответ в этом конкретном случае: DHCP настроен на переопределение локальных настроек.

Эффективный способ изменения имени хоста

Для Ubuntu, ymmv применимо следующее .

  1. Измените постоянное имя хоста, отредактировав файл /etc/hostname .

     sudo echo 'mynewhostname' > /etc/hostname 
  2. Чтобы изменить имя хоста для используемой системы, используйте команду hostname . Без шага 1 это будет сброшено при перезагрузке. Имеет смысл использовать значение, которое вы только что установили:

     sudo hostname -F /etc/hostname 

    или его эквивалент:

     sudo hostname `cat /etc/hostname` 
  3. Установите полное доменное имя (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) инструкций моего хостинга, которые я действительно должен был прочитать правильно.

Файл /etc/hostname содержит постоянную копию имени хоста и используется во время загрузки для установки копии времени выполнения. Чтобы изменить копию во время выполнения без перезагрузки, скажите:

 $ sudo hostname `cat /etc/hostname` 

Или просто передайте новое имя хоста в качестве параметра в команду hostname(1) .

Я вижу, что у вас есть /h в вашем PS1 а затем упоминается полное доменное имя, теперь вы можете опубликовать свое старое и новое имя хоста, которое вы пытаетесь использовать?

  • /h показывает имя хоста до первого '.'
  • /H показывает полное полное доменное имя

попробуйте

  • Заглавные буквы h в PS1 :

     PS1='${debian_chroot:+($debian_chroot)}\u@\H:\w\$ ' 
  • VPN с iptables и маршрутизацией: порт доступа из локальной сети
  • Записывайте нажатия клавиш через ssh и сможете воспроизводить их
  • Как смонтировать раздел LVM?
  • Отношения между выпусками и обновлениями дистрибутивов Linux
  • Объединение разделов между логическим и расширенным разделами
  • ubuntu 16.04 команда chmod не вычитается в rc.local автоматически
  • Apache Reverse Proxy - Как отключить SSL-фронт, но разрешить защиту SSL
  • Не удалось выйти из моего ноутбука
  • странные каталоги на разделе ubuntu 13.10 btrfs
  • Как подключить два компьютера Linux с Bluetooth?
  • Dropbox, notify-send и OSD вмешиваются в Ctrl-ярлыки
  • Как установить статический IP-адрес в Ubuntu
  • Linux и Unix - лучшая ОС в мире.