HOSTNAMECTL(1)

NAME
hostnamectl - 控制系统的主机名

SYNOPSIS

hostnamectl [OPTIONS...] {COMMAND}

描述

hostnamectl 可用于查询与修改系统主机名以及其他相关设置。 所谓"主机名"，其实有三种不同的含义：

"pretty"主机名，仅供人类阅读，可以包含各种特殊字符， 例如"Lennart's Laptop"(必须是UTF-8编码)。 pretty(易读主机名)、chassis(设备类型)、icon(图标名称)存储在 /etc/machine-info 文件中， 详见 machine-info(5) 手册。

"static"主机名，用于在系统启动时设置内核的主机名，仅可包含 "-","a-z","0-9" 字符，例如"lennarts-laptop"。 此种主机名就是通常所说的"主机名"，存储在 /etc/hostname 文件中， 详见 hostname(5) 手册。

"transient"主机名，是从网络配置中获得的 fallback 主机名， 同样仅可包含 "-","a-z","0-9" 字符。 如果存在"static"主机名且不等于"localhost"， 那么将忽略"transient"主机名。

可以使用 systemd-firstboot(1) 初始化已挂载(但未启动)的系统镜像的主机名(hostname)。

选项

能够识别的命令行选项如下：

--no-ask-password
    在执行特权操作时不向用户索要密码。

--static, --transient, --pretty
    与默认的 status 命令一起使用， 表示仅显示特定的主机名(不可同时使用多个选项)。

    与 set-hostname 命令一起使用， 表示仅更新特定的主机名(可以同时使用多个选项)。

-H, --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 ， 某些图形界面的应用程序会根据此设置给主机配上适当的图标。 此名称必须遵守 图标命名规范[1]。

    注意，若设为空字符串， 则表示将图标名重置为默认值(通常由"设备类型"决定)。

set-chassis TYPE
    将系统的设备类型设为 TYPE， 某些图形界面的应用程序 会根据此设置切换到合适的人机界面之类。 取值范围如下： "desktop"(台式机), "laptop"(笔记本), "server"(服务器), "tablet"(平板电脑), "handset"(智能手机), "watch"(智能手表), "embedded"(嵌入式设备), "vm"(虚拟机), "container"(容器)。

    注意，若设为空字符串， 则表示将设备类型重置为默认值(通常由主板固件决定)。

set-deployment ENVIRONMENT
    将系统的部署环境设为 ENVIRONMENT 。 必须设为一个单独的单词且禁止包含任何特殊字符。 建议设为下列单词中的一个： "development"(开发), "integration"(综合), "staging"(阶段), "production"(生产)

    注意，若设为空字符串，则表示将部署环境重置为默认值(同样是空字符串)。

set-location LOCATION
    将系统的地理位置设为 LOCATION 。 必须设为一个人类易读字符串， 准确的描述出主机所在的物理位置。 例如： "XX数据中心3楼E23机柜U7"

    注意，若设为空字符串，则表示将地理位置重置为默认值(同样是空字符串)。

退出状态

返回值为 0 表示成功， 非零返回值表示失败代码。

参见

systemd(1), hostname(1), hostname(5), machine-info(5), systemctl(1), systemd-hostnamed.service(8), systemd-firstboot(1)

NOTES

1.  图标命名规范
    http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html