Every Linux machine comes with a host name, which is usually configured during system installation. It is stored in /etc/hostname and normally displayed at the terminal as \h in the PS1 environment variable. You can view the current host name of the system via hostname command or by viewing the content of the /etc/hostname file.

The system host name in Linux could be changed via hostname command, but it is not persistent as it will return to the original host name after the system reboots.

user@host:~$ hostname host user@host:~$ sudo hostname newhost user@host:~$ hostname newhost user@host:~$ cat /etc/hostname host

The proper way to change the system host name in Linux and make it persist or permanent is by using hostnamectl tool at the terminal.

Steps to change system hostname in Linux:

  1. Launch a terminal application.
  2. Check current host name.

    user@host:~$ hostname host

  3. Change host name with hostnamectl.

    user@host:~$ sudo hostnamectl set-hostname newhost

  4. Check current hostname again to confirm.

    user@host:~$ hostname newhost

  5. Check /etc/hostname to ensure change is saved and is persistent.

    user@host:~$ cat /etc/hostname newhost

  6. Launch new shell to test if change is successful.

    user@host:~$ bash user@newhost:~$