在 Raspberry Pi OS 上更改主機名
本文將介紹幾種在 Raspberry Pi OS 上更改主機名的方法。
hostnamectl
命令更改 Raspberry Pi 主機名
通常,主機名分為三類:static
、pretty
和 transient
。
我們可以使用 hostnamectl
命令來操作它們中的每一個。執行不帶任何引數的 hostnamectl
命令將列印系統主機名和相關資訊。
此外,如果指定了 status
引數,它將產生相同的輸出:
hostnamectl
#OR
hostnamectl status
輸出:
Static hostname: raspberrypi
Icon name: computer-vm
Chassis: vm
Machine ID: cbd927c65cc948a5b9e4384f2740aadf
Boot ID: 8c63bdba77f548c5930cdf3b70eb3630
Virtualization: oracle
Operating System: Debian GNU/Linux 10 (buster)
Kernel: Linux 4.19.0-13-amd64
Architecture: x86-64
如果要更改當前主機名,可以執行帶有 set-hostname
選項的 hostnamectl
命令,並指定一個新名稱作為第二個引數。
請注意,如果你沒有以 root
使用者身份登入,這需要 sudo
許可權。
sudo hostnamectl set-hostname pi
輸出:
Static hostname: pi
Icon name: computer-vm
Chassis: vm
Machine ID: cbd927c65cc948a5b9e4384f2740aadf
Boot ID: 8c63bdba77f548c5930cdf3b70eb3630
Virtualization: oracle
Operating System: Debian GNU/Linux 10 (buster)
Kernel: Linux 4.19.0-13-amd64
Architecture: x86-64
前面的命令將設定靜態和瞬態主機名。或者,你可以通過將相應的選項 --static
、--pretty
或 --transient
附加到 hostnamectl
命令來更改特定的主機名類。
以下命令將漂亮的主機名設定為 Pi
:
sudo hostnamectl set-hostname Pi --pretty
現在,如果我們列印與主機名相關的資訊,將包含一個以 Pretty hostname:
開頭的新行。
hostnamectl
輸出:
Static hostname: pi
Pretty hostname: Pi
Icon name: computer-vm
Chassis: vm
Machine ID: cbd927c65cc948a5b9e4384f2740aadf
Boot ID: 8c63bdba77f548c5930cdf3b70eb3630
Virtualization: oracle
Operating System: Debian GNU/Linux 10 (buster)
Kernel: Linux 4.19.0-13-amd64
Architecture: x86-64
hostname
命令更改 Raspberry Pi 主機名
另一個用於修改 Raspberry PI 臨時主機名的有用命令是 hostname
。如果在沒有任何引數的情況下執行此命令,也會列印主機名。
如果你想更改現有的臨時名稱,請包含一個新主機名作為唯一引數:
sudo hostname pios
前面的命令將 pios
設定為新的系統主機名。請注意,sudo
字首僅在從非 root 使用者執行命令時是必需的。
sysctl
命令更改 Raspberry Pi 主機名
sysctl
命令通常可以在執行時配置核心引數。
現在,我們將利用它來設定一個新的臨時主機名。該命令可以接受變數名,及其帶有等號的值對。
因此,我們修改 kernel.hostname
變數以具有值 pico
。
sudo sysctl kernel.hostname=pico
修改 /etc/hostname
檔案以更改 Raspberry Pi 主機名
最後,你可以編輯儲存當前靜態主機名的系統檔案/etc/hostname
。該檔案僅包含一行,你可以使用任何首選的文字編輯器對其進行修改。
在這種情況下,我們演示了一個使用 echo
和 tee
命令的命令列解決方案。請注意,對於非 root 使用者,/etc/hostname
檔案需要 sudo
許可權。
echo "raspi" | sudo tee /etc/hostname