尝试在正在运行的系统的 bash 提示符中更改主机名(无需重新启动):
我尝试使用命令更改系统的主机名
hostname NEW_HOST_NAME
。为了更好地衡量,我也/etc/rc.d/hostname restart
按照建议做了在论坛中。现在,当我发出命令时,hostname
它会显示 NEW_HOST_NAME。但当我echo $HOSTNAME
这样做时,它仍然显示旧的主机名。因此,当 1 不起作用时,我编辑了针对主机名的条目
/etc/rc.conf
,然后按照中的建议/etc/netstart
重新启动rc.conf
邮件列表。
更改 中的条目rc.conf
不会更改 的输出hostname
。当我echo $HOSTNAME
这样做时,它仍然显示旧的主机名。当然还hostname
显示了新名称。
所以我对这里幕后发生的事情感到相当迷失。任何澄清/解释将不胜感激。更(或可能更少)重要的是我如何更改正在运行的系统的主机名,以便更新 bash 提示符(我source ~/.bashrc
在更改内容后确实尝试过,但这显然不起作用,因为echo $HOSTNAME
仍然输出旧主机名)。
答案1
$HOSTNAME
是一个 bash 变量由 bash shell 设置当它开始时(使用结构 utsname.nodename)或者你在某个时候重写。更改实际主机名不会重新运行登录脚本或启动新的 shell。如果你也想改变,那就改变吧。或者,更改主机名后,您可以注销并重新登录以进行设置以使用新主机名。
另请注意,当计算机重新启动时,您对主机名所做的更改可能会被撤消。可能有一种方法可以配置它在启动时如何设置(但我目前没有 FreeBSD 机器可以检查)。