一、简介
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
[root@localhost ~]# exit //注销登录
//使用远程(CRT/Xshell)重新连接服务器
[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文件的内容进行修改。
本文出现任何错误,请留言批评指正。