首先要說明,hostname和hosts文件沒有必然聯繫,有不明白的同窗能夠先自行查閱資料瞭解hostname和hosts文件的關係。這裏簡要說明一下。vim
在一個局域網中,每臺機器都有一個主機名,用於主機與主機之間的便於區分,就能夠爲每臺機器設置主機名,以便於以容易記憶的方法來相互訪問。好比咱們在局域網中能夠爲根據每臺機器的功用來爲其命名。主機名相關的配置文件:/etc/hosts;centos
hosts 配置文件是用來把主機名字映射到IP地址的方法,這種方法比較簡單服務器
通常狀況下hosts的內容關於主機名(Linux hostname)的定義,每行爲一個主機,每行由三部份組成,每一個部份由空格隔開。其中#號開頭的行作說明,不被系統解釋。網絡
第一部份:網絡IP地址;dom
第二部份:主機名.域名,注意主機名和域名之間有個半角的點,好比 localhost.localdomain測試
第三部份:主機名(主機名別名) ,其實就是主機名;spa
固然每行也能夠是兩部份,就是主機IP地址和主機名;好比 192.168.1.195 debian.net
hostname命令行
在CentOS中,有三種定義的主機名:靜態的(static),瞬態的(transient),和靈活的(pretty)。「靜態」主機名也稱爲內核主機名,是系統在啓動時從/etc/hostname自動初始化的主機名。「瞬態」主機名是在系統運行時臨時分配的主機名,例如,經過DHCP或mDNS服務器分配。靜態主機名和瞬態主機名都聽從做爲互聯網域名一樣的字符限制規則。而另外一方面,「靈活」主機名則容許使用自由形式(包括特殊/空白字符)的主機名,以展現給終端用戶(如Linuxidc)。get
1.要查看主機名相關的設置:
[root@localhost ~]# hostnamectl
Static hostname: localhost.localdomain
Icon name: computer
Chassis: n/a
Machine ID: 80a4fa4970614cf6be9597ecd6f097a9
Boot ID: 28420e272e1847a583718262758bd0f7
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-123.el7.x86_64
Architecture: x86_64
或
[root@localhost ~]# hostnamectl status
Static hostname: localhost.localdomain
Icon name: computer
Chassis: n/a
Machine ID: 80a4fa4970614cf6be9597ecd6f097a9
Boot ID: 28420e272e1847a583718262758bd0f7
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-123.el7.x86_64
Architecture: x86_64
2.只查看靜態、瞬態或靈活主機名,分別使用「--static」,「--transient」或「--pretty」選項。
[root@localhost ~]# hostnamectl --static
localhost.localdomain
[root@localhost ~]# hostnamectl --transient
localhost.localdomain
[root@localhost ~]# hostnamectl --pretty
3.要同時修改全部三個主機名:靜態、瞬態和靈活主機名:
[root@localhost ~]# hostnamectl set-hostname Linuxidc
[root@localhost ~]# hostnamectl --pretty
Linuxidc
[root@localhost ~]# hostnamectl --static
Linuxidc
[root@localhost ~]# hostnamectl --transient
Linuxidc
就像上面展現的那樣,在修改靜態/瞬態主機名時,任何特殊字符或空白字符會被移除,而提供的參數中的任何大寫字母會自動轉化爲小寫。一旦修改了靜態主機名,/etc/hostname 將被自動更新。然而,/etc/hosts 不會更新以保存所作的修改,因此你每次在修改主機名後必定要手動更新/etc/hosts,以後再重啓CentOS 7。不然系統再啓動時會很慢。
4.手動更新/etc/hosts
vim /etc/hosts
127.0.0.1 Linuxidc hunk_zhu
#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain
::1 localhost localhost.localdomain localhost6 localhost6.localdomai
5.重啓CentOS 7 以後(reboot -f ),
[root@Linuxidc ~]# hostname
Linuxidc
[root@hunk_zhu ~]# hostnamectl --transient
Linuxidc
[root@hunk_zhu ~]# hostnamectl --static
Linuxidc
[root@hunk_zhu ~]# hostnamectl --pretty
Linuxidc
6.若是你只想修改特定的主機名(靜態,瞬態或靈活),你可使用「--static」,「--transient」或「--pretty」選項。
例如,要永久修改主機名,你能夠修改靜態主機名:
[root@localhost ~]# hostnamectl --static set-hostname Linuxidc
重啓CentOS 7 以後(reboot -f ),
[root@Linuxidc ~]# hostnamectl --static
Linuxidc
[root@Hunk_zhu ~]# hostnamectl --transient
Linuxidc
[root@Hunk_zhu ~]# hostnamectl --pretty
Linuxidc
[root@Hunk_zhu ~]# hostname
其實,你沒必要重啓機器以激活永久主機名修改。上面的命令會當即修改內核主機名。註銷並從新登入後在命令行提示來觀察新的靜態主機名。
在修改靜態/瞬態主機名時,任何特殊字符或空白字符會被移除,而提供的參數中的任何大寫字母會自動轉化爲小寫。一旦修改了靜態主機名,/etc/hostname 將被自動更新。然而,/etc/hosts 不會更新以保存所作的修改,因此你每次在修改主機名後必定要手動更新/etc/hosts,以後再重啓CentOS 7。不然系統再啓動時會很慢。
紅色部分沒有測試過