W moim miejscu pracy mamy oddzielne środowiska do programowania, testowania, integracji i inscenizacji.
W tych środowiskach przeciążiliśmy nazwy hostów w DNS - np. W środowisku deweloperskim nazywana jest podstawowa maszyna internetowa web1.dev.example.com
, aw środowisku testowym podstawowa maszyna internetowa web1.test.example.com
.
Aby odróżnić komputery w różnych środowiskach, chcę dostosować monity bash, aby wyświetlały nazwę FQDN, a nie tylko nazwę hosta. Dobrze i dobrze; Byłbym w stanie wymienić \h
z \H
w $PS1
, prawda? Hmm Pokazują dokładnie to samo.
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: ~$
W /etc/hostname
, mam tylko nazwę hosta ( web1
). hostname
i hostname -f
oba zwracają prawidłowe wyniki (odpowiednio „web1” i „web1.test.example.com”), i mam prawidłowe wpisy w /etc/hosts
.
Co daje?
Są to hosty Ubuntu 10.04, jeśli to robi różnicę.
Nazwy hostów, zwięzłe i długie, są niesamowicie szalone, a poprawianie ich przez cały czas jest trudne - więc po prostu poddaję się i używam nazwy FQDN jako nazwy hosta ...
Robię to samo, co ty w moich środowiskach, ale przerywam nazwy FQDN w wierszu polecenia, ponieważ wiem, na której stronie się znajduję , i to oszczędza miejsce. Podpowiadam też kolorami moje podpowiedzi w oparciu o środowisko, więc lepiej ostrzegam, gdy robię coś „ważnego”. Oddzielam też spację ścieżką od wszystkiego innego, aby ułatwić kopiowanie makaronu pwd. Fragment z mojego zasobu
/etc/profile
:A jeśli chodzi o „brzydotę”, kogo obchodzi, jak wygląda kod wyświetlający monit? W każdym razie jest to kod tylko do zapisu.
źródło
To jest błąd w sposobie, w jaki Ubuntu zarządza / etc / hostname.
Zgłoszony błąd: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1276796
źródło