Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
May the source be with you, but remember the KISS principle ;-)
Skepticism and critical thinking is not panacea, but can help to understand the world better

hostname command in Red Hat Linux

News See Also Recommended Links Changing hostname Maximum hostname length
nslookup dig Sysadmin Horror Stories Humor Etc

Utility hostname displays the current host, domain or node name of the system. As such it is close to DNS commands such as nslookup, but historically the concept of hostname preceded the DNS and the name of the system  used in DNS does not necessary corresponds to the hostname.  Often hostname is "unqualified" name, although in RHEL default is fully qualified name.  It has several options. Among the most useful:

-i, --ip-address
Display the IP address(es) of the host.
-s, --short
Display the short host name. This is the host name cut at the first dot.

In all Linuxes hostname command is just one of a half dozen command that return various part of information about current hostname and current DNS name 

In linux hostname is a memory field stored in /proc filesystem. That means that you can emulate the actions of the hostname command by accessing this memory structure directly via /proc filesystem.  You can read and write (as root) to it

To read use the command:
cat /proc/sys/kernel/hostname

to write new hostname (will not survive reboot):

echo splab02 > /proc/sys/kernel/hostname

As hostname command changes only memory structure it is not suitable to making permanent changes. This is  distribution dependent part. We will discuss Red Hat only.

For permanent change of the hostname in Red Hat (but not SLES) you should modify the file /etc/sysconfig/network  (in SLES the file /etc/HOSTNAME) as well as file /etc/hosts.

Here is how file /etc/sysconfig/network looks on a typical Red Hat 5.6 box:

cat /etc/sysconfig/network

This file is sourced by /etc/init.d/network script on reboot. You can make change permanent without reboot by restarting /etc/init.d/network script:

/etc/init.d/network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down interface eth1:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:
Determining IP information for eth0... failed; no link present.  Check cable?
Bringing up interface eth1:                                [  OK  ]

If the system does not have HOSTNAME entry in /etc/sysconfig/network the first matching entry in /etc/hosts will be used.


There are also additional utilities that allow getting DNS and NIS/YP information:

These names are used by many of the networking programs to identify the machine. The domain name is also used by .

hostname can perform two basic operations

  1. Get name: if called without any arguments, the program displays the current system name as returned by the gethostname(2) function.

    dnsdomainname will print the domain part of the FQDN (Fully Qualified Domain Name). The complete FQDN of the system is returned with hostname --fqdn.

    If  hostname -s is called  gethostbyname(3) call will be used. The difference in gethostname(2) and gethostbyname(3) is that gethostbyname(3) is network aware, so it consults /etc/nsswitch.conf and /etc/host.conf to decide whether to read information in /etc/sysconfig/network or /etc/hosts the hostname is also set when the network interface is brought up.

  2. Set name: When called with one argument or with the --file option, the commands set the host name, the NIS/YP domain name or the node name.


  1. Sometimes during the installation the anaconda sets the value HOSTNAME in /etc/sysconfig/network to localhost.localdomain.   That leads to difficult to troubleshoot errors, for example in Sun Grid Engine. Always verify if HOSTNAME field in /etc/sysconfig/network is set correctly
  2. Note that hostname doesn't change anything permanently. After reboot original names from /etc/sysconfig/network or if HOSTNAME is not defined in this file, /etc/hosts is used.
  3. You can't change the FQDN (as returned by hostname --fqdn) or the DNS domain name (as returned by dnsdomainname) with this command. The FQDN of the system is the name that the resolver(3) returns for the host name. Technically: The FQDN is the name gethostbyname(2) returns for the host name returned by gethostname(2). The DNS domain name is the part after the first dot. 


-a, --alias

Display the alias name of the host (if used).
-d, --domain
Display the name of the DNS domain. Don't use the command domainname to get the DNS domain name because it will show the NIS domain name and not the DNS domain name. Use dnsdomainname instead.
-F, --file filename
Read the host name from the specified file. Comments (lines starting with a '#') are ignored.
-f, --fqdn, --long
Display the FQDN (Fully Qualified Domain Name). A FQDN consists of a short host name and the DNS domain name. Unless you are using bind or NIS for host lookups you can change the FQDN and the DNS domain name (which is part of the FQDN) in the /etc/hosts file.
-h, --help
Print a usage message and exit.
-i, --ip-address
Display the IP address(es) of the host.
-s, --short
Display the short host name. This is the host name cut at the first dot.
-V, --version
Print version information on standard output and exit successfully.
-v, --verbose
Be verbose and tell what's going on.
-y, --yp, --nis
Display the NIS domain name. If a parameter is given (or --file name ) then root can also set a new NIS domain.

Top Visited
Past week
Past month


Old News ;-)

[Jan 09, 2012] Change Hostname in SUSE



How do you change the hostname in SLES11? I have normally used the /etc/hostname file and rebooted the server in other distros.

I only notice the way to change it is in yast2 -> network devices -> network settings -> Hostnames

I am looking for where it is stored because I want to write a script to update it (apart of a server deployment process).

Thank you for your time

I hate bumping but I'd really like to know since I can not find anything on google or anywhere else about this.


Put it in /etc/hostname as well as in /etc/hosts


Put it in /etc/hostname as well as in /etc/hosts
I have done that and tried restarting but my hostname does not change unless I change it in yast.

I tried putting it in /etc/hostname and /etc/hosts and then rebooting. Executed "hostname" and it still reported the old one.

Changing it via Yast allowed me to update it right away without having to even reboot, just logout and log back in.


I normaly advice people to use YaST because there are a few places where it should be done and YaST knows them where I always forget one or more.

I rely on YaST now and do not know any more all the places where to go.

Does anybody know if YaST keeps a lof of what it does realy?

Henk van Velden


mmarif4u;2103002 Wrote:
> Maybe you could try SLES forum, as you can get better response from
> the tech and support team there.
> 'SUSE Linux Enterprise Server (SLES) - NOVELL FORUMS'
> (

Tried it. They never seem to respond over there
Which SLE forum did you post in and when?

The three files to change are /etc/HOSTNAME (note case) and /etc/hosts
against the address and also postfix/ Its also the
fully qualified name (FQDN).

Cheers Malcolm

How to change the hostname of a Linux system MDLog-sysadmin

Permanent hostname change on RedHat based systems

RedHat based system use the file /etc/sysconfig/network to read the saved hostname at system boot. This is set using the init script /etc/rc.d/rc.sysinit


So in order to preserve your change on system reboot edit this file and enter the appropriate name using the HOSTNAME variable.

Use sysctl to change the hostname

Why would someone need a different method of doing the same thing as above? No idea, but here is anyway: use sysctl to change the variable kernel.hostname:

sysctl kernel.hostname

to read the current hostname, and

sysctl kernel.hostname=NEW_HOSTNAME

to change it.

Linux setting hostname and domain name of my server

Local hostname and domain name of your server defined in text configuration located in /etc directory.

If you are using Red Hat or Fedora Linux
Use redhat-config-network GUI tool. Type following command and click on DNS tab > Setup hostname and domain name:
# redhat-config-network
On other hand you can edit a text file. Find out and set up the value for HOSTNAME in the file /etc/sysconfig/network:
# vi /etc/sysconfig/network
Setup/replace HOSTNAME
Where, web is hostname and is your DNS domain name

networking - Configuring the hostname on Red Hat Enterprise Linux - Server Fault

The box in your example will have hydrogen.lan as its hostname, not hydrogen.

The only way I know of to have hostname return the short hostname and to have hostname -f return the FQDN, is to use both the mentioned options.

So add HOSTNAME=mybox to /etc/sysconfig/network and add mybox
to /etc/hosts. I like having hostname and hostname -f return different things. By default, Anaconda sets it up like you have it set up now.

Recommended Links

Google matched content

Softpanorama Recommended

Top articles



The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D

Copyright 1996-2018 by Dr. Nikolai Bezroukov. was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) in the author free time and without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to make a contribution, supporting development of this site and speed up access. In case is down you can use the at


The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last modified: March 12, 2019