We've got seperate environments at my workplace for development, testing, integration, and staging.
Within those envs, we've overloaded the hostnames in DNS - e.g. in the dev environment, the primary web machine is called web1.dev.example.com, and in the test environment, the primary web machine is web1.test.example.com.
To distinguish between machines in the different environments, I want to customise the bash prompts to display the FQDN rather than just the hostname. Well and good; I should be able to replace \h with \H in $PS1, right? Hmm. They show the exact same thing.
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: ~$
In /etc/hostname, I've got just the hostname (web1). hostname and hostname -f both return the correct results ("web1" and "web1.test.example.com" respectively), and I've got the correct entries in /etc/hosts.
What gives?
These are Ubuntu 10.04 hosts, if that makes a difference.