在设置基于树莓的树莓派系统后,一个常见的任务是更改机器的名称主机名),因为它将在默认情况下被设置为“raspberrypi”。
虽然如果您的网络上只有一个RPi,这可能不是一个问题,但对于任何开发物联网(IoT)系统的人来说,如果有多个RPi,显然需要给它们提供更有用的主机名。
属性可以临时更改主机名主机名
命令(注意必须使用sudo
否则命令将失败)但是,重新启动后,名称将恢复到以前设置的状态,我们通常希望永久更改主机名。有很多方法可以实现这一点,包括在启动时在shell脚本中使用hostname命令,如果您需要动态定义主机名,这可能会很有用,但最常用的方法是通过编辑主机
文件,因而:
sudo / etc / hosts纳米
以下是你将看到的:
如果你改变最后一行,127.0.1.1 raspberrypi,
另一些东西,比如,127.0.1.1巴克表
(为了纪念我的巴克表系列),然后,在重新启动后,这将是您的计算机的主机名。无论你做什么,都不要改变127.0.1.1
;如果你这样做了,你会被其后果所困扰。
想要一个更简单的方法来改变树莓派的主机名吗?试着用hostnamectl
。这个命令在几乎所有的Linux发行版上都可以使用,包括Raspbian:
…区分了三种不同的主机名:高级的“pretty”主机名,它可能包括所有类型的特殊字符(例如:"Lennart's Laptop"),用于在引导时初始化内核主机名的静态主机名(例如:" lennars -laptop"),以及从网络配置中接收到的临时主机名,这是一个回退值。如果设置了静态主机名,并且是有效的(不是本地主机),则不使用瞬态主机名。
这是默认输出;命令:
hostnamectl状态
...输出相同的信息:
实际上有三个主机名:Static、transient和“pretty”;后者是一个字符串,可以包含任何字符,包括不能使用的字符RFC 1123主机名。命令:
set-hostname " barkmeter "设置主机名
...设置静态和漂亮的主机名(瞬态主机名设置为空,即。""
).同样,你必须使用sudo
否则命令将失败。
注意,在上面的截图中,如果指定了漂亮的主机名,而静态主机名没有指定,那么通过用小写字母替换大写字母,用下划线替换空格,并在复制到静态主机名之前省略特殊字符,漂亮的主机名将符合RFC 1123。您可以指定这三个主机名中的任何一个,例如:
Sudo hostnamectl——transient set-hostname " barkmeter "
Sudo hostnamectl——static set-hostname " barkmeter "
Sudo hostnamectl——pretty set-hostname " barkmeter "
...但请注意,hostnamectl
不允许您专门将静态主机名设置为RFC 1123抱怨之外的字符串。下面是一个将漂亮主机名设置为“Barkometer”(然后将静态主机名转换为“Barkometer”)的示例,然后将瞬态主机名设置为不同的东西,例如“Test”:
也许这是一个bug,但是可以将临时主机名设置为一个不是RFC 1123抱怨的字符串,然后在需要主机名时使用该字符串。
一个很酷的特点hostnamectl
是否能够使用SSH远程设置主机名,以便您所在的主机和要重命名的目标机器都具有hostnamectl
安装:
sudo hostnamectl -H pi@192.168.0.32 set-hostname " barkmeter "
...将启动一个SSH会话,连接到目标计算机,请求密码,并相应地设置主机名(您也可以使用——静态
,——瞬态
,——很
选项- h)。
最后,在Raspbian下,指定一个空字符串(""
),而不指定主机名:
Sudo hostnamectl设置主机名
...将静态主机名显示为“n / a”,
瞬时主机名设置为本地主机
(当主机名呈现给网络服务时使用),并将漂亮主机名设置为空,
所以它不会显示,重新启动后,主机名仍然是这样设置的。