You need to use hostname command or hostnamectrl command on modern Linux distro. It is used to either set or display the current host or domain name of the system. This name is used by many of the networking programs to identify the Linux based machine. The following instructions should work on both Debian and Ubuntu Linux systems or any Linux distro if you are using hostnamectrl.
How to display current hostname
Just type hostname command to print the name of the system on screen:
$ hostname
Sample outputs:
viveks-desktop
Change the Linux hostname
Set hostname to desktop.nixcraft.com:
# hostname desktop.nixcraft.com
# hostname
Sample outputs:
desktop.nixcraft.com
Change hostname permanently on a Debian/Ubuntu Linux
You need to edit a file called /etc/hostname:
# vi /etc/hostname
Set new hostname:
desktop.nixcraft.com
Save and close the file. You need to reboot the system or run any one of the following command:
# /etc/init.d/hostname.sh start
OR
# invoke-rc.d hostname.sh start
Linux change hostname using hostnamectl command (systemd only)
Most modern Linux distribution comes with systemd. If you are using systemd based distro try hostnamectl command.
Query hostname with hostnamectl
Let us print out current hostname:
$ hostnamectl
Change hostname with hostnamectl
The syntax is as follows to set hostname to ‘viveks-laptop’:
$ hostnamectl set-hostname 'viveks-laptop'
Sample outputs:
Set the deployment environment description
ENVIRONMENT must be a single word without any control characters. One of the following is suggested: “development”, “integration”, “staging”, “production”. The syntax is:
$ hostnamectl set-deployment ENVIRONMENT
$ hostnamectl set-deployment production
How to set the location string for the system, if it is known
The syntax is:
$ hostnamectl set-location LOCATION
$ hostnamectl set-location "NYC Home"
$ hostnamectl set-location "DC 2, right rack, 2nd shelf"
A note about an RHEL (Red hat) / CentOS / Fedora Linux users
If you are using CentOS or Fedora or Redhat (RHEL) Linux, see this FAQ.
- Ubuntu Linux Change Hostname (computer name)
- Debian Linux: Change Hostname / Computer Name Permanently
- Linux change my hostname / computer system name
- Linux Change Hostname
- RHEL / Centos Linux 7: Change and Set Hostname Command
- OpenBSD Change Hostname
- CentOS Linux 5/6 Change Hostname Command
- Linux setting hostname and domain name of my server
- FreeBSD Change Hostname without reboot
- SuSe Linux Change Hostname without reboot
- How to set the hostname on Fedora Linux
- Ubuntu 18.04 LTS change hostname permanently
- Ubuntu set hostname permanently (computer name) command
- OpenSUSE Linux set hostname permanently (computer name) command
- RHEL 8 Linux set hostname permanently (computer name) command
- CentOS 8 Linux set hostname permanently (computer name) command
- Ubuntu 20.04 LTS set hostname permanently (computer name) command
- Set / Change FQDN on Ubuntu 20.04 LTS
- Alpine Linux - Setting system hostname
🐧 Get the latest tutorials on Linux, Open Source & DevOps via:
- RSS feed or Weekly email newsletter
- Share on Twitter • Facebook • 12 comments... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
Thanks. That’s exactly what I needed!
hostname papa.nixcraft.com —temp changing the hostname
For Permanent
vim /etc/hosts
vim /etc/sysconfig/network
i did as you tell but can’t ping to hostname. My hostname is linuxserver, when i use command ping it appear connect: Network is unreachable.
after changing, type “bash” and the prompt will change to the newest hostname your just changed.
this just doesn’t work, it seems like it does but you wont be able to use “sudo” anymore…..
hostname change command
Hi,
Thanks for pointing me to the right direction.
As for me and perhaps ppl using certain distro, may have to edit the /etc/hosts file as well.
sudo gedit /etc/hosts
127.0.0.1 localhost
127.0.1.1 newhostnamehere
——
Look for the line that says:
127.0.1.1 originalname
and change it to the newhostname
Regards,
Bob
PS: until I fix this, sudo took a long time trying to but fail to “resolve” the name, before asking for password and the GUI ‘update’ taskbar icon and GUI package manager stop working.
The same thing happened to me, thanks for the comment
hi
my need change host name in centos 5.7 ??
Really from my own point of view it is so amazing to use it please i need some e-book how to use it.
Thanks’
Martin
Setting up a CentOS 6 box today and was able to use the hostname command successfully without errors. Not sure why using the other FAQ is suggested.
so useful, thanks a lot!!!