4

Моя подсказка bash показывает мое имя хоста. Если я изменю свое имя хоста с помощью команды hostname , в /etc/hosts , /etc/hostname и $HOSTNAME , приглашение все равно будет использовать старое имя. Возможно ли обновить это без выхода из системы?

2 ответа2

6

Если в вашем приглашении есть \h или \H , его расширение инициализируется при запуске оболочки, поэтому вам придется перезапустить bash (exec bash). Если это вас слишком беспокоит, измените настройку приглашения на печать $HOSTNAME .

3

Если вы хотите, чтобы приглашение bash динамически обновлялось по мере обновления имени хоста (как сообщается командой /bin/hostname ), вы можете сделать это:

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

Это расточительно (запускает подоболочку каждый раз, когда вы нажимаете клавишу возврата - не ужасно, но не элегантно), поэтому я бы использовал это только там, где этого требует ситуация. Я использую его при работе с базовым шаблоном виртуальной машины, который используется для создания нескольких целевых экземпляров виртуальной машины, где метаданные об экземпляре указаны в имени хоста. И даже тогда пользовательский PS1 устанавливается только временно, как часть начального сеанса входа в систему, пока развертывается экземпляр виртуальной машины роли.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .