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

重啓之後也不會發生變化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章