我使用過的Linux命令之hostname - 顯示或設置主機名
本文鏈接:http://codingstandards.iteye.com/blog/804648 (轉載請注明出處)
用途說明
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. 重新啟動機器並確認是否修改成功。
問題思考
相關資料
【1】cnblogs [Linux.Bash] 幾個關於host name的配置文件和命令
【2】互動百科 FQDN
【3】百度空間 linux如何修改hostname(zz)
【4】LinuxSir.Org Linux操作系統主機名(hostname)簡說(v0.1b)
【5】ChinaUnix 怎樣修改Linux的hostname
【6】robinwu的日志 Redhat Linux 修改主機名(HOSTNAME)