本文主要介绍如何修改主机名。假如pc为原主机名,而我们现在要将laptop作为主机名。
在其他的Linux发行版中也应该是有效的,毕竟发行版太多了,使用和其机制上也有不同的地方,不敢保证。
安装了systemd的Debian版本可以使用hostnamectl命令来更新主机名。该命令依赖于dbus,所以要先确保dbus可以正常工作:
# hostnamectl set-hostname laptop
该命令会自动修改主机名,并修改/etc/hostname文件,但是该命令不会修改/etc/hosts文件,这可能需要手动完成。
有的教程中说要执行/etc/init.d/hostname.sh start命令。emmmm....,一言难尽,不同的发行版里的系统初始进程不同,有用systemd进行管理的,有用SysV风格(init)进行管理的。操作上也由出入。因此,是否要执行该命令与你的修改方法以及你所使用的系统版本有关。该hostname.sh脚本的start方法执行的操作如下(来自于Kali Linux Rolling源):
#!/bin/bash do_start () { [ -f /etc/hostname ] && HOSTNAME="$(cat /etc/hostname)" # Keep current name if /etc/hostname is missing. [ -z "$HOSTNAME" ] && HOSTNAME="$(hostname)" # And set it to 'localhost' if no setting was found [ -z "$HOSTNAME" ] && HOSTNAME=localhost [ "$VERBOSE" != no ] && log_action_begin_msg "Setting hostname to '$HOSTNAME'" hostname "$HOSTNAME" ES=$? [ "$VERBOSE" != no ] && log_action_end_msg $ES exit $ES }所以,从上面的脚本看,如果如果你要修改主机名,只需要两步操作:
修改/etc/hostname文件,将该文件中的pc修改为laptop;执行/etc/init.d/hostname.sh start命令;
而且该脚本也只应该在SysV风格的系统里使用。在Debian 8/9中,使用的是systemd进行系统管理,也不需要执行该命令,也不应该。
执行hostnamectl set-hostname laptop命令时,可能会产生如下错误:
Failed to create bus connection: No such file or directory
系统:Kali GNU/Linux Rolling原因:没找到,,,emmmmm...,hostnamectl命令依赖于dbus,dbus需要需要正常运行,这里的正常运行指的是与hostnamectl运行有关的环节正常运行。
K4NZ / 修改主机名How To Change Your Hostname on DebianDebian Linux: Change Hostname / Computer Name PermanentlyHow to Change Your Hostname in CentOS 6.7