CentOS7下修改hostname的五种方法

转载自:https://blog.csdn.net/liumiaocn/article/details/103170673

叙述

这篇文章用于介绍CentOS7下hostname的五种设定方法,虽然很多方式在不同发行版的Linux上均可使用,但在本文中并未一一验证。

确认hostname方法

确认当前机器的名称的命令:hostname

当前机器名称设定的文件:/etc/hostname

当前机器名称相关的环境变量: HOSTNAME
[root@devops ~]# hostname
devops
[root@devops ~]# cat /etc/hostname
devops
[root@devops ~]# echo $HOSTNAME
devops
[root@devops ~]#

方法1: 使用hostname命令

当前机器名称为devops,使用hostname将其修改为liumiao

[root@devops ~]# hostname liumiao
[root@devops ~]# echo $HOSTNAME
devops
[root@devops ~]# cat /etc/hostname
devops
[root@devops ~]# hostname
liumiao
[root@devops ~]#

可以看到除了提示符没有改变之外,hostname命令已经发生了变化,再次登录之后此提示信息和HOSTNAME环境变量都会发生变化

[root@liumiao ~]# echo $HOSTNAME
liumiao
[root@liumiao ~]# hostname
liumiao
[root@liumiao ~]# cat /etc/hostname
devops
[root@liumiao ~]# 

重启之后,则会恢复修改之前的状态

[root@devops ~]# cat /etc/hostname
devops
[root@devops ~]# hostname
devops
[root@devops ~]# echo $HOSTNAME
devops
[root@devops ~]#

方法2: 使用hostnamectl命令

命令格式:hostnamectl set-hostname 新名称

执行日志如下所示,可以看到除了PS1的内容之外其他内容都已经实时修改了

[root@devops ~]# hostnamectl set-hostname liumiao
[root@devops ~]# cat /etc/hostname
liumiao
[root@devops ~]# echo $HOSTNAME
devops
[root@devops ~]# hostname
liumiao
[root@devops ~]# 

再次登录之后会发现PS1的信息也已经变化了

[root@liumiao ~]# cat /etc/hostname
liumiao
[root@liumiao ~]# hostname
liumiao
[root@liumiao ~]# echo $HOSTNAME
liumiao
[root@liumiao ~]#

reboot之后也依然不会不会变化。所以hostnamectl基本上就是实时变化并且能够持久保存的方式。

方式3: 修改/etc/hostname

通过修改/etc/hostname文件,也可以达到修改机器名称的目的

[root@liumiao ~]# cat /etc/hostname
liumiao
[root@liumiao ~]# echo $HOSTNAME
liumiao
[root@liumiao ~]# hostname
liumiao
[root@liumiao ~]#

将其修改为devops,然后重启

[root@liumiao ~]# vi /etc/hostname
[root@liumiao ~]# cat /etc/hostname
devops
[root@liumiao ~]# reboot
Shared connection to 127.0.0.1 closed.
liumiaocn:~ liumiao$ 

再次登录之后可以看到,均已修改过来了

[root@devops ~]# hostname
devops
[root@devops ~]# cat /etc/hostname
devops
[root@devops ~]# echo $HOSTNAME
devops
[root@devops ~]#

方式4: 使用sysctl修改

命令格式:sysctl kernel.hostname=新名称

sysctl修改kernel下的设定,也可达到相同的效果,执行日志如下所示

[root@devops ~]# hostname
devops
[root@devops ~]# cat /etc/hostname
devops
[root@devops ~]# echo $HOSTNAME
devops
[root@devops ~]# 
[root@devops ~]# sysctl kernel.hostname
kernel.hostname = devops
[root@devops ~]# 
[root@devops ~]# sysctl kernel.hostname=liumiao
kernel.hostname = liumiao
[root@devops ~]#

执行之后结果如下所示

[root@devops ~]# echo $HOSTNAME
devops
[root@devops ~]# cat /etc/hostname
devops
[root@devops ~]# hostname
liumiao
[root@devops ~]#

重新登录之后,可以看到,除了/etc/hostname,HOSTNAME环境变量也发生了变化

[root@liumiao ~]# echo $HOSTNAME
liumiao
[root@liumiao ~]# hostname
liumiao
[root@liumiao ~]# cat /etc/hostname
devops
[root@liumiao ~]# 

因为没有持久化保存,所以reboot之后会和第一种方法一样,重新恢复之前的状态。

方法5: 修改/etc/sysconfig/network

通过修改/etc/sysconfig/network,也可以实现修改hostname返回值的效果。比如:

[root@devops ~]# cat /etc/sysconfig/network
# Created by anaconda
[root@devops ~]# vi /etc/sysconfig/network
[root@devops ~]# 
[root@devops ~]# cat /etc/sysconfig/network
# Created by anaconda
hostname liumiao.com
[root@devops ~]#

重启network服务之后即可生效

[root@devops ~]# systemctl restart network
[root@devops ~]# hostname
liumiao.com
[root@devops ~]# echo $HOSTNAME
devops
[root@devops ~]#

重新登录之后即可发生变化

[root@liumiao ~]# echo $HOSTNAME
liumiao.com
[root@liumiao ~]# hostname
liumiao.com
[root@liumiao ~]# cat /etc/hostname
devops
[root@liumiao ~]#

实际上hostname有两个选项(-f和-s: -f返回FQDN值,而-s返回shortname),到目前为止的其他方法的设定,此两项的返回值都相同,而此时则返回不同的值。

[root@liumiao ~]# hostname -f
liumiao.com
[root@liumiao ~]# hostname -s
liumiao
[root@liumiao ~]#

重启之后也不会发生变化。

发布了27 篇原创文章 · 获赞 32 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/lizhengyu891231/article/details/104252952
今日推荐