RHEL / Centos Linux 7: Change and Set Hostname Command

Posted on in Categories , , last updated February 14, 2017

I‘m a new RHEL (Red Hat Linux) and/or CentOS Linux 7 server user. How can I change the hostname in CentOS 7 using a command line option?

On a CentOS Linux 7 server you can use any one of the following tool to manage hostnames:

  1. hostnamectl command : Control the system hostname. This is recommended method.
  2. nmtui command : Control the system hostname using text user interface (TUI).
  3. nmcli command : Control the system hostname using CLI part of NetworkManager.

Types of hostnames

The hostname can be configured as follows

  1. Static host name assigned by sysadmin. For example, “server1”, “wwwbox2”, or “server42.cyberciti.biz”.
  2. Transient/dynamic host name assigned by DHCP or mDNS server at run time.
  3. Pretty host name assigned by sysadmin/end-users and it is a free-form UTF8 host name for presentation to the user. For example, “Vivek’s netbook”.

Method #1: hostnamectl command

Let us see how to use the hostnamectl command.

How do I see the host names?

$ hostnamectl
## OR ##
$ hostnamectl status

Sample outputs:

   Static hostname: centos-7-rc
         Icon name: computer
           Chassis: n/a
        Machine ID: b5470b10ccfd49ed8e4a3b0e953a53c3
           Boot ID: f79de79e2dac4670bddfe528e826b61f
    Virtualization: oracle
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-229.1.2.el7.x86_64
      Architecture: x86_64

How do I set the host name?

The syntax is:
# hostnamectl set-hostname Your-New-Host-Name-Here
# hostnamectl set-hostname "Your New Host Name Here" --pretty
# hostnamectl set-hostname Your-New-Host-Name-Here --static
# hostnamectl set-hostname Your-New-Host-Name-Here --transient

To set host name to “R2-D2”, enter:
# hostnamectl set-hostname R2-D2
To set static host name to “server1.cyberciti.biz”, enter:
# hostnamectl set-hostname server1.cyberciti.biz --static
To set pretty host name to “Senator Padme Amidala’s Laptop”, enter:
# hostnamectl set-hostname "Senator Padme Amidala's Laptop" --pretty
To verify new settings, enter:
# hostnamectl status
Sample outputs:

   Static hostname: server1.cyberciti.biz
   Pretty hostname: Senator Padmé Amidala's Laptop
Transient hostname: r2-d2
         Icon name: computer
           Chassis: n/a
        Machine ID: b5470b10ccfd49ed8e4a3b0e953a53c3
           Boot ID: f79de79e2dac4670bddfe528e826b61f
    Virtualization: oracle
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-229.1.2.el7.x86_64
      Architecture: x86_64

How do I delete a particular host name?

The syntax is:
# hostnamectl set-hostname ""
# hostnamectl set-hostname "" --static
# hostnamectl set-hostname "" --pretty

How do I change host name remotely?

Use any one of the following syntax:
# ssh [email protected] hostnamectl set-hostname server1
OR set server1 as host name on a remote server called 192.168.1.42 using ssh:
# hostnamectl set-hostname server1 -H [email protected]

Method #2: nmtui command

You can set host name using nmtui command which has text user interface for new users:
# nmtui
Sample outputs:

Fig.01: Use nmtui to set hostname on a CentOS 7
Fig.01: Use nmtui to set hostname on a CentOS 7

Use the Down arrow key > select the “Set system hostname” menu option > Press the “Ok” button:
Fig.02: Set hostname
Fig.02: Set hostname

You will see the confirmation box as follows:
Fig.03: New hostname confirmed
Fig.03: New hostname confirmed

Finally, restart hostnamed service by typing the following command
# systemctl restart systemd-hostnamed
To verify changes, enter:
# hostnamectl status
Sample outputs:
Fig.04: CentOS 7 / RHEL View Host Name Details Using hostnamectl Command
Fig.04: CentOS 7 / RHEL View Host Name Details Using hostnamectl Command

Method #3: nmcli command

The nmcli is a command line tool for controlling NetworkManager and reporting network status.

To view the host name using nmcli command:

The syntax is:
# nmcli general hostname

To set the host name using nmcli command:

The syntax is:
# nmcli general hostname R2-D2
# nmcli general hostname server42.cyberciti.biz

Finally, restart the systemd-hostnamed service:
# systemctl restart systemd-hostnamed

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

11 comment

  1. or just vi /etc/hostname, edit the file with the new name, logout, log in, the new host name is there.

  2. Please check this line.
    # ostnamectl set-hostname “Senator Padmé Amidala’s Laptop” –pretty
    Where is “h” letter?

  3. Please check this line.
    # hostnamectl set-hostname “Senator Padmé Amidala’s Laptop” –pretty

    It would appear you used an ISO 8859-1 code page to save that line, causing the e-accent (é) to be mangled to A-tilde+CopyRight (é) when displaying it in UTF-8 context.
    One way to fix this is to use sed to replace the é with é as vi will notice the encoding and convert it, showing it correctly.

    Hope the diacritical characters show properly in this comment; code page issues are nasty.

  4. No problem. Not sure what you did, looks like you just got rid of the accent, but I now see this, not sure if that? new or I missed it yesterday:

    Method #3: nmcli command
    The nmcli is a command‐line tool

    It’s even worse after copy/paste, so you definitely (still?) have a codepage issue.

    Cheers.

  5. Hmmm… saving it makes it look the same. Before posting there was a third control-like character (square block with 0s and 1s in there) behind the € sign. As stated, these are nasty issues. I’m actually dealing with some of this professionally at the moment.

    Is your database codepage set to UTF-8?

    I’m using Firefox to visit this site, set to UTF-8. If I change my codepage to ‘Western’ or ISO 8859-1, it actually becomes worse.
    Hope this helps.

Comments are closed.