Changing a Linux hostname
I’m always unsure whenever I have to change the hostname of a Linux machine. Even though it is a simple process, it brings up many questions. Is it done using the hostname command? Is it by editing the /etc/hostname file? If so, how do you reload it after editing? Why is it lost after a reboot?
The answer for Linux distributions based on systemd (nearly all of them) is to use hostnamectl:
$ sudo hostnamectl hostname foo
This will update the /etc/hostname file properly and ensure the setting isn’t lost on the next reboot.
P.s.: apparently, the command used to be hostnamectl set-hostname, but these days hostnamectl hostname will suffice.