一、简介

hostnamectl 是在 centos7 中新增加的命令,它是是用来管理给定主机中使用的三种类型的主机名。

在CentOS7中有三种定义的主机名: 静态的(static)、瞬态的(transient)、和灵活的(pretty)。“static” 主机名是可由用户选择的传统 hostname,并保存在 /etc/hostname 文件中。“transient” hostname 是由内核维护的动态主机名。它最初是默认的 static 主机名,其值默认为 “localhost”。可由 DHCP 或 mDNS 在运行时更改其默认值。“pretty” hostname 是为用户提供的任意格式 UTF8 主机名。

二、用法

1.参数
  -h --help              显示帮助
     --version           显示安装包的版本
     --transient         修改临时主机名
     --static            修改瞬态主机名
     --pretty            修改灵活主机名
  -P --privileged        在执行之前获得的特权
     --no-ask-password   输入密码不提示
  -H --host=[USER@]HOST  操作远程主机

Commands:
  status                 显示当前主机名设置
  set-hostname NAME      设置系统主机名
  set-icon-name NAME     为主机设置icon名
  set-chassis NAME       设置主机平台类型名
2.具体用法
2.1 查看所有主机名
[root@localhost ~]# hostnamectl status 
   Static hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: e9b05280560a4af4a6af98b31c11abda
           Boot ID: 0130f463c0fa4d429d117169a2e895e3
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-1127.el7.x86_64
      Architecture: x86-64

如果未指定任何选项,则默认使用 status 选项。
hostnamectl <==> hostnamectl status

2.2 设定所有主机名

更多修改主机名方法点此

 [root@localhost ~]# hostnamectl set-hostname 主机名

这样会将 pretty、static 和 transient 主机名变得相似。Static 和 transient 主机名会简化为 pretty 主机名格式。使用 “-” 替换空格,并删除特殊字符。

过程

[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# hostnamectl set-hostname xsnq  //此时已近修改成功
[root@localhost ~]# hostname   //查看主机名已近修改成功
xsnq
//这里远程登录(CRT)重新连接服务器也可以
[root@localhost ~]# init 6  //重启服务器 
[root@xsnq ~]#  //主机名显示也修改完成
2.3 设定/清除特定主机名

2.3.1 设定

[root@localhost ~]# hostnamectl set-hostname name option..

name:主机名。
option:是–pretty、–static, 会 --transient 中的一个或多个选项。

如果 --static 或 --transient 选项与 --pretty 选项一同使用,则会将 static 和 transient主机名简化为 pretty 主机名格式。使用 “-” 替换空格,并删除特殊字符。如果未使用 --pretty 选项,则不会发生简化。

2.3.2清除特定主机名,并将其还原为默认形式

[root@localhost ~]# hostnamectl set-hostname "" option...

过程

[root@xsnq ~]# hostname
xsnq
[root@xsnq ~]# hostnamectl set-hostname "" --static
[root@xsnq ~]# hostname    //此时清除成功,但还未生效
xsnq
[root@lxsnq ~]# init 6   //重启
[root@localhost ~]# hostname   //已还原成默认形式
localhost.localdomain

三、hostname与hostnamectl 区别

hostname 临时修改主机名;
hostnamectl 永久修改主机名,是对/etc/hostname文件的内容进行修改。

本文出现任何错误,请留言批评指正。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐