在 CentOS7 中有三种定义的主机名:
- 静态的(static):静态主机名也称为内核主机名,是系统在启动时从
/etc/hostname
设置内核的主机名,你可以理解为是永久性的主机名。仅可包含-
,a-z
,0-9
字符,且最大不超过 64 个字符长度。 例如hbwh3x-01
。此种主机名就是通常所说的 “主机名”,存储在/etc/hostname
文件中。 - 瞬态的(transient):瞬态主机名是在系统运行时临时分配的主机名,一般是从网络配置中获得,在重启后将失效。同样仅可包含
-
,a-z
,0-9
字符,且最大不超过 64 个字符长度。如果存在static
主机名且不等于localhost
, 那么将忽略transient
主机名。 - 灵活的(pretty):灵活的易读的主机名,仅供人类阅读,可以包含各种特殊字符,且无长度限制。 例如
Tom's Laptop
(必须是UTF-8编码)。 pretty(易读主机名)、chassis(设备类型)、icon(图标名称)存储在/etc/machine-info
文件中。
修改 CentOS7 主机名有个专用的命令 hostnamectl
1 | [root@m5 ~]# hostnamectl |
不加任何参数其实等同于 hostnamectl status
,用于查看当前的主机名状态。
1 | [root@m5 ~]# hostnamectl status |
选项
--no-ask-password
- 在执行特权操作时不向用户索要密码。
--transient, --static, --pretty
- 与默认的 status 命令一起使用, 表示仅显示特定的主机名(不可同时使用多个选项)。
- 与 set-hostname 命令一起使用, 表示仅更新特定的主机名(可以同时使用多个选项)。
-H --host=[USER@]HOST
- 操作指定的远程主机。可以仅指定一个主机名(hostname), 也可以使用 “username@hostname” 格式。 hostname 后面还可以加上容器名(以冒号分隔), 也就是形如 “hostname:container” 的格式, 以表示直接连接到指定主机的指定容器内。 操作将通过SSH协议进行,以确保安全。 可以通过 machinectl -H HOST 命令列出远程主机上的所有容器名称。
-M, --machine=
- 在本地容器内执行操作。 必须明确指定容器的名称。
-h, --help
- 显示简短的帮助信息并退出。
--version
- 显示简短的版本信息并退出。
命令
status
- 显示当前的主机名及其他相关信息。 这是默认命令。
set-hostname NAME
- 将系统的主机名设为
NAME
。 如果使用了--static
,--transient
,--pretty
选项, 那么只更新指定的主机名,否则同时更新pretty
,static
,transient
三个主机名。 如果在设置pretty
主机名的同时也设置static/transient
主机名, 那么static/transient
主机名将根据如下规则从pretty
主机名派生而来:- 首先将大写字母转换为小写字母
- 然后删除不在
-
,a-z
,0-9
范围内的字符。
这样可以确保
static/transient
主机名始终保持与pretty
主机名一致,同时又不违反自身的命名规则。 如果仅设置static/transient
主机名,则不会对pretty
主机名产生任何影响。注意,若设为空字符串, 则表示将主机名重置为默认值(通常是
localhost
)。
set-icon-name NAME
将系统的图标名设为
NAME
, 某些图形界面的应用程序会根据此设置给主机配上适当的图标。 此名称必须遵守图标命名规范。注意,若设为空字符串, 则表示将图标名重置为默认值(通常由”设备类型”决定)。
set-chassis TYPE
将系统的设备类型设为
TYPE
, 某些图形界面的应用程序 会根据此设置切换到合适的人机界面之类。 取值范围如下:- desktop:台式机
- laptop:笔记本
- convertible:折叠本
- server:服务器
- tablet:平板电脑
- handset:智能手机
- watch:智能手表
- embedded:嵌入式设备
- vm:虚拟机
- container:容器
注意,若设为空字符串, 则表示将设备类型重置为默认值(通常由主板固件决定)。
set-deployment ENVIRONMENT
将系统的部署环境设为
ENVIRONMENT
。 必须设为一个单独的单词且禁止包含任何特殊字符。 建议设为下列单词中的一个:- development:开发
- integration:综合
- staging:阶段
- production:生产
注意,若设为空字符串,则表示将部署环境重置为默认值(同样是空字符串)。
set-location LOCATION
将系统的地理位置设为
LOCATION
。 必须设为一个人类易读字符串, 准确的描述出主机所在的物理位置。 例如: “XX数据中心3楼E23机柜U7”注意,若设为空字符串,则表示将地理位置重置为默认值(同样是空字符串)。
退出状态
返回值为 0 表示成功, 非零返回值表示失败代码。