Kami memiliki lingkungan terpisah di tempat kerja saya untuk pengembangan, pengujian, integrasi, dan pementasan.
Di dalam envs tersebut, kami telah membebani nama host dalam DNS - misalnya di lingkungan dev, mesin web utama disebut web1.dev.example.com, dan di lingkungan pengujian, mesin web primer adalah web1.test.example.com.
Untuk membedakan antara mesin di lingkungan yang berbeda, saya ingin menyesuaikan permintaan bash untuk menampilkan FQDN daripada hanya nama host. Baik dan bagus; Aku harus bisa menggantikan \hdengan \Hdi $PS1, kan? Hmm. Mereka menunjukkan hal yang sama persis.
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: ~$
Di /etc/hostname, saya hanya punya nama host ( web1). hostnamedan hostname -fkeduanya mengembalikan hasil yang benar ("web1" dan "web1.test.example.com",), dan saya mendapatkan entri yang benar di /etc/hosts.
Apa yang menyebabkannya?
Ini adalah host Ubuntu 10,04, jika itu membuat perbedaan.