在 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