Ubuntu 13.04 以上版本

Ubuntu 13.04 以上版本

我想更改作業系統主機名,但不想重新啟動。

我已編輯/etc/hostname,但需要重新啟動才能實施。如何避免這種情況?

答案1

這很容易。只需點擊齒輪圖示(位於螢幕右上角),打開“關於此電腦”螢幕(位於齒輪圖示)並編輯“裝置名稱”。

或者,在終端機中使用以下命令:

sudo hostname your-new-name

這會將主機名稱設定為您的新名稱,直到您重新啟動為止。看man hostname如何更改電腦名稱?了解更多。請勿_以您的名義使用。

筆記

重新啟動後您的更改/etc/hostname將被使用,所以(正如您在問題中所說),您仍然應該使用

sudo -H gedit /etc/hostname

(或其他編輯器)以便該檔案包含主機名稱。

若要測試檔案設定是否正確,請執行:

sudo service hostname start

您還應該編輯/etc/hosts並更改以下行:

127.0.1.1     your-old-hostname

現在它包含您的新主機名稱。 (這是必需的,否則許多命令將停止運行。)

答案2

Ubuntu 13.04 以上版本

hostnamectl命令是桌面版和伺服器版預設安裝的一部分。

它結合了透過命令設定主機名稱hostname和編輯/etc/hostname。除了設定靜態主機名稱之外,它還可以設定「漂亮」主機名,這在 Ubuntu 中不使用。不幸的是,編輯/etc/hosts仍然需要單獨完成。

hostnamectl set-hostname new-hostname

該命令是systemd-services軟體包(從 Ubuntu 14.04 開始,還包括timedatectllocalectl命令)。隨著 Ubuntu 遷移到systemd,這個工具就是未來。

答案3

無需重啟

更改 ubuntu 中的主機名稱或電腦名稱無需重新啟動

編輯/etc/hostname並更改為新值,

nano /etc/hostname 

編輯/etc/hosts舊的 127.0.1.1 行並將其變更為新主機名

127.0.0.1   localhost
127.0.1.1   ubuntu.local    ubuntu   # change to your new hostname/fqdn

筆記:我在論壇上讀過>編輯/etc/hosts並將舊的127.0.1.1行更改為您的新主機名稱(如果您不這樣做,您將無法sudo再使用。如果您已經這樣做了,請按ESC鍵grub 選單,選擇恢復,然後將主機檔案編輯為正確的設定)

現在重新啟動後,您的主機名稱將是您選擇的新主機名

無需重啟

改變無需重新啟動,編輯後直接使用hostname.sh即可/etc/hostname。您必須將兩個主機名稱保留在/etc/hosts(127.0.0.1 newhost oldhost) 中,直到您執行下列命令:

sudo service hostname start

筆記:以上命令使變更處於活動狀態。儲存在此檔案 ( ) 中的主機名稱將/etc/hostname在系統重新啟動時保留(並將使用相同的服務進行設定)。

答案4

Cloud-init (Ubuntu 18+) 主機名稱持久性

雖然上述方法(hostnamectletc/hostname等)適用於立即更改主機名,但隨著雲端初始化- 它可以控制主機名稱的設定 - 除許多其他事項外。因此,如果安裝了 cloud-init,重啟後它就不會黏住。如果您希望變更在重新啟動後保留,則需要編輯雲端初始化設定檔,停用 cloud-init主機名稱設定/更新模組:

sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg

或完全停用 cloud-init:

sudo touch /etc/cloud/cloud-init.disabled

相關內容