命令 >hostname 和 >echo $HOSTNAME 和 /etc/rc.conf 中的条目主机名之间的区别:FreeBSD

命令 >hostname 和 >echo $HOSTNAME 和 /etc/rc.conf 中的条目主机名之间的区别:FreeBSD

尝试在正在运行的系统的 bash 提示符中更改主机名(无需重新启动):

  1. 我尝试使用命令更改系统的主机名hostname NEW_HOST_NAME。为了更好地衡量,我也/etc/rc.d/hostname restart按照建议做了在论坛中。现在,当我发出命令时,hostname它会显示 NEW_HOST_NAME。但当我echo $HOSTNAME这样做时,它仍然显示旧的主机名。

  2. 因此,当 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 机器可以检查)。

相关内容