本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。
本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:
由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。
localectl — 控制系统的本地化与键盘布局
localectl
[OPTIONS...] {COMMAND}
localectl 可用于查询与修改系统的本地化(locale)与键盘布局的设置。
它通过与
systemd-localed.service(8)
通信来修改例如 /etc/locale.conf
与
/etc/vconsole.conf
之类的配置文件。
本地化设置控制着 用户界面的语言、字符类型与字符编码、 日期时间与货币符号的表达方式 等许多细节。
键盘布局 控制着键盘上 每个按键及组合键 的含义。
注意,为了使此工具所做的修改在系统启动的早期就能生效,
可能需要重新制作 initramfs ,
因为 localectl
并不会自动更新 initramfs 。
可以使用 systemd-firstboot(1) 初始化已挂载(但未启动)的系统镜像的 本地化(locale)设置。
能够识别的命令行选项如下:
--no-ask-password
¶在执行特权操作时 不向用户索要密码。
--no-convert
¶与 set-keymap 或 set-x11-keymap 命令连用, 表示不同时设置X11与控制台的键盘映射, 也就是 不强迫保持两者一致。
-H
, --host=
¶操作指定的远程主机。可以仅指定一个主机名(hostname),
也可以使用 "username@hostname
" 格式。
hostname 后面还可以加上
SSH监听端口(以冒号":
"分隔)与容器名(以正斜线"/
"分隔),
也就是形如 "hostname:port/container
" 的格式,
以表示直接连接到指定主机的指定容器内。
操作将通过SSH协议进行,以确保安全。
可以通过
machinectl -H
HOST
命令列出远程主机上的所有容器名称。IPv6地址必须放在方括号([])内。
-M
, --machine=
¶-h
, --help
¶--version
¶--no-pager
¶不将程序的输出内容管道(pipe)给分页程序。
能够识别的命令如下:
显示当前的本地化设置与键盘映射。 如果未指定任何命令,那么这是默认的隐含命令。
本地化设置。使用第一种格式,表示只设置环境变量 "$LANG
" 的值(例如 "zh_CN.UTF-8
")[译者注]实测第一种格式无效。。
使用第二种格式,表示明确设置一个或多个环境变量的值(例如 "LANG=zh_CN.utf8 LC_MESSAGES=en_US.utf8
")。
参见
locale(7)
以了解可用的环境变量及其含义。使用
list-locales 命令列出所有可用的
locale (见下文)。
列出所有可用的 locale , 以帮助正确使用 set-locale 命令。
设置控制台的键盘映射
(中国人应设为 "us
")。
可选的[TOGGLEMAP]用于设置第二切换键盘映射。
除非明确设置了
--no-convert
选项,
否则此命令也会同时设置默认的X11键盘布局(将"MAP"自动转化为最接近的X11键盘布局)。
使用 list-keymaps 命令列出所有可用的
键盘映射 (见下文)。
列出所有可用的控制台键盘映射, 以帮助正确使用 set-keymap 命令。
设置默认的X11键盘布局
(中国人应设为 "us
")。
可选的,还可以设置 Model, Variant, Options 三项(无默认值)。
"MODEL"一般设为"pc104","VARIANT"与"OPTIONS"一般直接忽略,详见
kbd(4)
手册。除非明确设置了 --no-convert
选项,
否则此命令也会同时设置控制台的键盘映射,
也就是将"LAYOUT"自动转化为
最接近的控制台键盘映射。
分别列出所有可用的X11键盘的 Layout, Model, Variant, Options 以帮助正确使用 set-x11-keymap 命令。 list-x11-keymap-variants 命令有个可选的"LAYOUT"参数用于过滤出 仅适合于特定键盘布局的变种。
$SYSTEMD_PAGER
¶指定分页程序。仅在未指定 --no-pager
选项时有意义。
此变量会覆盖 $PAGER
的值。如果 $SYSTEMD_PAGER
与 $PAGER
都未设置,
那么将会依次尝试如下常见的分页程序:
less(1),
more(1),
如果最终仍未找到分页程序,那么将不使用分页。
将此变量设为空字符串或 "cat
" 等价于使用 --no-pager
选项。
$SYSTEMD_LESS
¶用于覆盖默认传递给 less
程序的命令行选项("FRSXMK
")。
如果 $SYSTEMD_LESS
的值不含 "K
" ,
并且使用 less 作为分页程序,那么
Ctrl+C 信号将会被忽略。
这将允许 less 自己处理
Ctrl+C 信号。
$SYSTEMD_LESSCHARSET
¶用于覆盖默认传递给 less 程序的字符集。
(如果终端兼容 UTF-8 ,那么默认值是 "utf-8
" )