我使用過的Linux命令之hostname - 顯示或設定主機名

quanjima發表於2014-10-17



我使用過的Linux命令之hostname - 顯示或設定主機名


用途說明
hostname命令可以用來顯示或者設定主機名(show or set the system’s host name)。環境變數HOSTNAME也儲存了當前的主機名。在使用hostname命令設定主機名後,系統並不會永久儲存新的主機名,重新啟動機器之後還是原來的主機名。如果需要永久修改主機名,需要同時修改/etc/hosts和/etc/sysconfig/network的相關內容。某些依賴於系統主機名的軟體,在修改主機名之後可能會出現問題,比如為mysql配置了同步複製時,修改主機名前最好先停止其執行(經驗之談,本人就因此折騰了很久)。

常用引數
不帶引數時顯示主機名。
格式:hostname
帶上-i引數時顯示ip地址。
格式:hostname -i
帶上-f引數時顯示全域名(FQDN,Fully Qualified Domain Name)。
格式:hostname -f
修改主機名時,後面跟上新的主機名即可。(注意此方法立即生效,但不會永久儲存,詳見後面的示例)。
格式:hostname newhostname

使用示例
示例一 顯示主機名
[root@jfht ~]# hostname
jfht
[root@jfht ~]# echo $HOSTNAME
jfht
[root@jfht ~]# grep jfht /etc/hosts
127.0.0.1               jfht localhost.localdomain localhost
注:這臺機器的hosts設定有些問題的,應該另開一行設定ip fqdn hostname,比如192.168.1.191  jfht.xyz.com jfht。
[root@jfht ~]# hostname -i
127.0.0.1       <== 由於/etc/hosts檔案設定不夠合理,所以顯示迴環地址(loopback 127.0.0.1) 。
[root@jfht ~]# hostname -f
jfht               <== 由於/etc/hosts檔案中沒有設定FQDN,所以無法顯示fqdn。
[root@jfht ~]# grep jfht /etc/sysconfig/network
HOSTNAME=jfht
[root@jfht ~]# cat /proc/sys/kernel/hostname
jfht
[root@jfht ~]#

示例二 修改主機名
現在演示一下將原來的主機名rhel55改成new55,並增加FQDN設定。
[root@rhel55 ~]# hostname
rhel55
[root@rhel55 ~]# hostname -i
127.0.0.1
[root@rhel55 ~]# hostname -f
rhel55
[root@rhel55 ~]# hostname new55
[root@rhel55 ~]# echo $HOSTNAME
rhel55
[root@rhel55 ~]# hostname
new55
[root@rhel55 ~]# vi /etc/hosts
開啟/etc/hosts,將
127.0.0.1               rhel55 localhost.localdomain localhost
改為
127.0.0.1               localhost.localdomain localhost
並增加一行
192.168.6.55            new55.somedomain.com  new55
[root@rhel55 ~]# vi /etc/sysconfig/network

HOSTNAME=rhel55
改成
HOSTNAME=new55
 
現在退出當前shell重新登入看看。
[root@rhel55 ~]# exit
logout

Last login: Sat Nov  6 17:00:08 2010 from 192.168.6.106
[root@new55 ~]# echo $HOSTNAME
new55
[root@new55 ~]# hostname
new55
[root@new55 ~]# hostname -i
192.168.6.55
[root@new55 ~]# hostname -f
new55.somedomain.com
[root@new55 ~]#

重啟一下Linux,然後再登入,可以看到主機名修改生效了。
[root@new55 ~]# reboot

Last login: Sat Nov  6 17:10:08 2010 from 192.168.6.106
[root@new55 ~]# echo $HOSTNAME
new55
[root@new55 ~]# hostname
new55
[root@new55 ~]# hostname -i
192.168.6.55
[root@new55 ~]# hostname -f
new55.somedomain.com
[root@new55 ~]#
 
在此,總結一下修改主機名的方法:
1. 停止與主機名相關的軟體執行,比如mysql。
2. 先使用 hostname newname 設定主機名。
3. 在/etc/hosts中修改或增加 ip fqdn newname 行,並檢查原來127.0.0.1行的設定。
4. 在/etc/sysconfig/network中修改HOSTNAME=newname。
5. 重新啟動機器並確認是否修改成功。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29913993/viewspace-1301808/,如需轉載,請註明出處,否則將追究法律責任。

相關文章