1.linux系统在启动阶段,init进程会调用shell脚本文件/etc/rc.d/rc.sysinit,而rc.sysinit会去读取/etc/sysconfig/network中HOSTNAME项作为主机名称。
在linux启动后,机器的主机名会放到内存虚拟文件系统/proc/sys/kernel/hostname文件中。因此,修改/etc/sysconfig/network中的主机名可以永久生效,但是需要重启机器才可以。
相应地,修改/proc/sys/kernel/hostname中主机名,可以立即生效,但是机器重启后主机名将会还原回/etc/sysconfig/network中的主机名。
备注:在不同的linux发行版本中,可能涉及到文件路径不一样。Debian发行版的hostname的配置文件是/etc/hostname。
2.修改主机名几种方法
(1)新会话立即生效,但是重启机器后失效
hostname newhostname #修改的是内存中的主机名
(2)新会话立即生效,但是重启机器后失效
echo newhostname > /proc/sys/kernel/hostname #修改的是内存中的主机名
(3)新会话立即生效,但是重启机器后失效
sysctl kernel.hostname=newhostname #修改的是内存中的主机名
(4)重启机器才会生效
修改/etc/sysconfig/network文件中的HOSTNAME项,是重启机器才会生效,不是重启网络服务生效哦
(5)新会话立即生效,且重启机器后也生效
就是用(4)配合(1)(2)(3)中的任何一个就达到目的了
CentOS7下修改主机名
第一种:hostname 主机名
hostname 主机名称
这种方式,只能修改临时的主机名,当重启机器后,主机名称又变回来了。
第二种:hostnamectl set-hostname <hostname>
命令行中输入
hostnamectl set-hostname <主机名>
使用这种方式修改,可以永久性的修改主机名称!