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 ~]#

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值