天天看點

Linux有問必答:如何在CentOS或RHEL 7上修改主機名Linux有問必答:如何在CentOS或RHEL 7上修改主機名

問題:在centos/rhel 7上修改主機名的正确方法是什麼(永久或臨時)?

在centos或rhel中,有三種定義的主機名:a、靜态的(static),b、瞬态的(transient),以及 c、靈活的(pretty)。“靜态”主機名也稱為核心主機名,是系統在啟動時從/etc/hostname自動初始化的主機名。“瞬态”主機名是在系統運作時臨時配置設定的主機名,例如,通過dhcp或mdns伺服器配置設定。靜态主機名和瞬态主機名都遵從作為網際網路域名同樣的字元限制規則。而另一方面,“靈活”主機名則允許使用自由形式(包括特殊/空白字元)的主機名,以展示給終端使用者(如dan's computer)。

Linux有問必答:如何在CentOS或RHEL 7上修改主機名Linux有問必答:如何在CentOS或RHEL 7上修改主機名

在centos/rhel 7中,有個叫hostnamectl的指令行工具,它允許你檢視或修改與主機名相關的配置。

要檢視主機名相關的設定:

$ hostnamectl status

Linux有問必答:如何在CentOS或RHEL 7上修改主機名Linux有問必答:如何在CentOS或RHEL 7上修改主機名

隻檢視靜态、瞬态或靈活主機名,分别使用“--static”,“--transient”或“--pretty”選項。

$ hostnamectl status [--static|--transient|--pretty]

要同時修改所有三個主機名:靜态、瞬态和靈活主機名:

$ sudo hostnamectl set-hostname <host-name>

Linux有問必答:如何在CentOS或RHEL 7上修改主機名Linux有問必答:如何在CentOS或RHEL 7上修改主機名

就像上面展示的那樣,在修改靜态/瞬态主機名時,任何特殊字元或空白字元會被移除,而提供的參數中的任何大寫字母會自動轉化為小寫。一旦修改了靜态主機名,/etc/hostname 将被自動更新。然而,/etc/hosts 不會更新以儲存所做的修改,是以你需要手動更新/etc/hosts。

如果你隻想修改特定的主機名(靜态,瞬态或靈活),你可以使用“--static”,“--transient”或“--pretty”選項。

例如,要永久修改主機名,你可以修改靜态主機名:

$ sudo hostnamectl --static set-hostname <host-name>

注意,你不必重新開機機器以激活永久主機名修改。上面的指令會立即修改核心主機名。登出并重新登入後在指令行提示來觀察新的靜态主機名。

原文釋出時間:2014-10-01

本文來自雲栖合作夥伴“linux中國”

繼續閱讀