Linux命令之hostname - 顯示或設置主機名


我使用過的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)

 

返回 我使用過的Linux命令系列總目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM