У меня на рабочем месте есть отдельные среды для разработки, тестирования, интеграции и подготовки.
В этих envs мы перегрузили имена хостов в DNS - например, в среде dev вызывается основной веб-компьютер web1.dev.example.com
, а в тестовой среде основной веб-компьютер web1.test.example.com
.
Чтобы различать машины в разных средах, я хочу настроить приглашения bash для отображения полного доменного имени, а не только имени хоста. Ну и хорошо; Я должен быть в состоянии заменить \h
на \H
в $PS1
, верно? Хм. Они показывают ту же самую вещь.
me@web1:~$ hostname
web1
me@web1:~$ hostname -f
web1.dev.example.com
me@web1:~$ export PS1="\[\u@\h: \w\]\$ "
me@web1: ~$ export PS1="\[\u@\H: \w\]\$ "
me@web1: ~$
Во /etc/hostname
, у меня есть только имя хоста ( web1
). hostname
и hostname -f
оба возвращают правильные результаты ("web1" и "web1.test.example.com" соответственно), и у меня есть правильные записи в /etc/hosts
.
Что дает?
Это хосты Ubuntu 10.04, если это имеет значение.
Существует безумное количество сумасшествия в отношении имен хостов, коротких и длинных, и все время делать это правильно сложно, поэтому я просто сдаюсь и заставляю все использовать полное доменное имя в качестве имени хоста ...
Я делаю то же самое, что и вы, в своих средах, но я вырываю полные доменные имена в приглашении, потому что я знаю, на каком сайте я работаю, и это экономит место. Я также окрашиваю свою подсказку в цвет, чтобы лучше предупреждать, когда я делаю что-то «важное». Я также разделяю путь пробелом от всего остального, чтобы упростить копирование-pasta pwd. Фрагмент из моего запаса
/etc/profile
:И что касается "уродства", кого волнует, как выглядит код для отображения подсказки? Во всяком случае, в большинстве случаев это код только для записи.
источник
Это ошибка, связанная с тем, как Ubuntu управляет / etc / hostname.
Ошибка подана: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1276796
источник