本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。
本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:
由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。
hostnamectl — 控制系统的主机名
hostnamectl
[OPTIONS...] {COMMAND}
hostnamectl 可用于查询与修改系统主机名以及其他相关设置。 所谓"主机名",其实有三种不同的含义:
"pretty"主机名,
仅供人类阅读,可以包含各种特殊字符,且无长度限制。
例如"Lennart's Laptop"(必须是UTF-8编码)。
pretty(易读主机名)、chassis(设备类型)、icon(图标名称)存储在
/etc/machine-info
文件中,
详见
machine-info(5)
手册。
"static"主机名,用于在系统启动时设置内核的主机名,仅可包含 "-","a-z","0-9" 字符,且最大不超过64个字符长度。
例如"lennarts-laptop"。此种主机名就是通常所说的"主机名",存储在 /etc/hostname
文件中,
详见 hostname(5) 手册。
"transient"主机名, 是从网络配置中获得的 fallback 主机名, 同样仅可包含 "-","a-z","0-9" 字符, 且最大不超过64个字符长度。 如果存在"static"主机名且不等于"localhost", 那么将忽略"transient"主机名。
可以使用 systemd-firstboot(1) 初始化已挂载(但未启动)的系统镜像的 主机名(hostname)。
能够识别的命令行选项如下:
--no-ask-password
¶在执行特权操作时 不向用户索要密码。
--static
, --transient
, --pretty
¶与默认的 status 命令一起使用, 表示仅显示特定的主机名(不可同时使用多个选项)。
与 set-hostname 命令一起使用, 表示仅更新特定的主机名(可以同时使用多个选项)。
-H
, --host=
¶操作指定的远程主机。可以仅指定一个主机名(hostname),
也可以使用 "username@hostname
" 格式。
hostname 后面还可以加上
SSH监听端口(以冒号":
"分隔)与容器名(以正斜线"/
"分隔),
也就是形如 "hostname:port/container
" 的格式,
以表示直接连接到指定主机的指定容器内。
操作将通过SSH协议进行,以确保安全。
可以通过
machinectl -H
HOST
命令列出远程主机上的所有容器名称。IPv6地址必须放在方括号([])内。
-M
, --machine=
¶-h
, --help
¶--version
¶能够识别的命令如下:
显示当前的主机名及其他相关信息。 如果未指定任何命令,那么这是隐含的默认命令。
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
")。
NAME
¶将系统的图标名设为
NAME
,
某些图形界面的应用程序会根据此设置给主机配上适当的图标。
此名称必须遵守
图标命名规范。
注意,若设为空字符串, 则表示将图标名重置为 默认值(通常由"设备类型"决定)。
TYPE
¶将系统的设备类型
设为
TYPE
,
某些图形界面的应用程序
会根据此设置切换到合适的人机界面之类。
取值范围如下:
"desktop
"(台式机),
"laptop
"(笔记本),
"convertible
"(折叠本),
"server
"(服务器),
"tablet
"(平板电脑),
"handset
"(智能手机),
"watch
"(智能手表),
"embedded
"(嵌入式设备),
"vm
"(虚拟机),
"container
"(容器)
。
注意,若设为空字符串, 则表示 将设备类型重置为默认值(通常由主板固件决定)。
ENVIRONMENT
¶将系统的部署环境设为
ENVIRONMENT
。
必须设为一个单独的单词且禁止包含任何特殊字符。
建议设为下列单词中的一个:
"development
"(开发),
"integration
"(综合),
"staging
"(阶段),
"production
"(生产)
注意,若设为空字符串, 则表示将部署环境重置为默认值(同样是空字符串)。
LOCATION
¶将系统的地理位置
设为 LOCATION
。
必须设为一个人类易读字符串,
准确的描述出主机所在的物理位置。
例如:
"XX数据中心3楼E23机柜U7
"
注意,若设为空字符串, 则表示将地理位置重置为默认值(同样是空字符串)。