1、在CentOS7中,有三种定义的主机名:

    1)静态主机名(Static Hostname):

            “静态”主机名也称之为内核主机名,是系统在启动时从/etc/hostname文件中初始化的主机名。

    2)瞬态主机名(Tansient Hostname):

            “瞬态”主机名是在系统运行时临时分配的主机名,例如:可以通过DHCP或mDNS服务器分配。

    3)灵活主机名(Pretty Hostname):

            “灵活”主机名也可以称之为“别名”主机名,“灵活”主机名则允许使用自由形式(包括特殊、空白字符)的主机名,以展示给终端用户(如:oldboy@Apache)。

    “静态”和“瞬态”主机名都遵从作为互联网域名同样的字符限制规则。

在CentOS 7中,有一个hostnamectl的命令行工具,它可以查看或修改与主机名相关的配置。

2、查看主机名:

查看三种主机名

[root@inotify /]# hostnamectl
   Static hostname: localhost
Transient hostname: inotify
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 783ecc4b8191441f876bef5c6aae3f0f
           Boot ID: 6b7865e3919d40bba1e4d5ae4d326565
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-327.el7.x86_64
      Architecture: x86-64
      
或

[root@inotify /]# hostnamectl status
   Static hostname: localhost
Transient hostname: inotify
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 783ecc4b8191441f876bef5c6aae3f0f
           Boot ID: 6b7865e3919d40bba1e4d5ae4d326565
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-327.el7.x86_64
      Architecture: x86-64

只查看静态主机名

[root@inotify /]# hostnamectl --static
localhost

只查看瞬态主机名

[root@inotify /]# hostnamectl --transient
inotify

只查看灵活主机名

#因为没有配置所以为空
[root@inotify /]# hostnamectl --pretty

3、修改主机名

1)临时生效:

命令:hostname 主机名 (修改后需要退出当前用户,在登录才可以生效

[root@inotify /]# hostname oldboy
[root@inotify /]# su - oldboy
Last login: Tue May 21 09:45:16 CST 2019 on pts/2
this is oldboy training
[oldboy@oldboy ~]$ su - root
Password: 
Last login: Mon May 20 13:43:08 CST 2019 on pts/0
this is oldboy training
[root@oldboy ~]#

2)永久生效:

方法一:命令修改(推荐使用

命令:hostnamectl set-hostname 主机名

提示:用此命令修改主机名时,会同时修改“静态”和“瞬态”两种主机名。

查看当前的“静态”和“瞬态”两种主机名:

[root@oldboy /]# hostnamectl --static
wahaha
[root@oldboy /]# hostnamectl --transient
rsync-inotify

修改主机名:

[root@oldboy /]# hostnamectl set-hostname localhost

查看修改后的“静态”和“瞬态”两种主机名:

[root@oldboy /]# hostnamectl --static
localhost
[root@oldboy /]# hostnamectl --transient
localhost

发现修改后的“静态”和“瞬态”两种主机名都是一样的。

方法二:修改配置文件(重启服务器才可以生效

配置文件:/etc/hostname

修改配置文件:

[root@oldboy /]# vim /etc/hostname 
mysql-server

查看静态主机名:

[root@oldboy /]# hostnamectl --static
mysql-server

查看瞬态主机名:

[root@oldboy /]# hostnamectl --transient
localhost

提示:发现修改配置文件只会改变了“静态”的主机名,而“瞬态”主机名没有变化。

4、总结

1、命令:hostname 主机名 (临时生效,并且需要退出当前用户才可以生效)

2、hostnamectl set-hostname 主机名(同时修改静态和瞬态两种主机名,并且也需要退出当前用户才可以生效)

3、vim /etc/hostname(配置文件,只修改静态主机名,并且需要重启服务才可以生效)

4、hostnamectl set-hostname 主机名 和 vim /etc/hostname 都是永久性修改主机名。