命令介绍
localectl 命令可用于查询与修改系统的本地化(locale)与键盘布局的设置。 它通过与 systemd-localed.service 通信来修改例如 /etc/locale.conf 与 /etc/vconsole.conf 之类的配置文件。本地化设置控制着 用户界面的语言、字符类型与字符编码、 日期时间与货币符号的表达方式 等许多细节。
本地化设置控制着用户界面的语言、字符类型与字符编码、 日期时间与货币符号的表达方式等许多细节。
键盘布局控制着键盘上每个按键及组合键的含义。
注意,为了使此工具所做的修改在系统启动的早期就能生效, 可能需要重新制作 initramfs , 因为 localectl 并不会自动更新 initramfs 。
常用选项
使用-h查看帮助:
ubuntu@VM-0-6-ubuntu:~$ localectl
System Locale: LANG=en_US.UTF-8
VC Keymap: n/a
X11 Layout: us
X11 Model: pc105
ubuntu@VM-0-6-ubuntu:~$ localectl -h
localectl [OPTIONS...] COMMAND ...
Query or change system locale and keyboard settings.
Commands:
status Show current locale settings
set-locale LOCALE... Set system locale
list-locales Show known locales
set-keymap MAP [MAP] Set console and X11 keyboard mappings
list-keymaps Show known virtual console keyboard mappings
set-x11-keymap LAYOUT [MODEL [VARIANT [OPTIONS]]]
Set X11 and console keyboard mappings
list-x11-keymap-models Show known X11 keyboard mapping models
list-x11-keymap-layouts Show known X11 keyboard mapping layouts
list-x11-keymap-variants [LAYOUT]
Show known X11 keyboard mapping variants
list-x11-keymap-options Show known X11 keyboard mapping options
Options:
-h --help Show this help
--version Show package version
--no-pager Do not pipe output into a pager
--no-ask-password Do not prompt for password
-H --host=[USER@]HOST Operate on remote host
-M --machine=CONTAINER Operate on local container
--no-convert Don't convert keyboard mappings
See the localectl(1) man page for details.
| 选项 | 说明 |
|---|---|
| -h, --help | 显示简短的帮助信息并退出 |
| –version | 显示简短的版本信息并退出 |
| –no-ask-password | 在执行特权操作时不向用户索要密码 |
| –no-convert | 与 set-keymap 或 set-x11-keymap 命令连用, 表示不同时设置X11与控制台的键盘映射, 也就是不强迫保持两者一致。 |
| -H, --host | 操作指定的远程主机。可以仅指定一个主机名(hostname), 也可以使用 “username@hostname” 格式。 hostname 后面还可以加上容器名(以冒号分隔), 也就是形如 “hostname:container” 的格式, 以表示直接连接到指定主机的指定容器内。 操作将通过SSH协议进行,以确保安全。 可以通过 machinectl -H HOST 命令列出远程主机上的所有容器名称 |
| –no-pager | 不将程序的输出内容管道(pipe)给分页程序 |
| status | 显示当前的本地化设置与键盘映射,这是默认命令 |
| set-locale LOCALE | 设置系统的本地化环境变量 |
| list-locales | 列出所有可用的 locale , 以帮助正确使用 set-locale 命令 |
| set-locale LOCALE… | 设置系统的本地化环境变量(可以一次设置多个), 例如 “LANG=zh_CN.utf8”, “LC_MESSAGES=en_US.utf8” 等 |
| set-keymap MAP [TOGGLEMAP] | 设置控制台的键盘映射(中国人应设为 “us”)。 可选的[TOGGLEMAP]用于设置第二切换键盘映射。 除非明确设置了 --no-convert 选项, 否则此命令也会同时设置默认的X11键盘布局(将"MAP"自动转化为最接近的X11键盘布局) |
| list-keymaps | 列出所有可用的控制台键盘映射, 以帮助正确使用 set-keymap 命令 |
| set-x11-keymap LAYOUT [MODEL [VARIANT [OPTIONS]]] | 设置默认的X11键盘布局(中国人应设为 “us”)。 可选的,还可以设置 Model, Variant, Options 三项(无默认值)。 “MODEL"一般设为"pc104”,"VARIANT"与"OPTIONS"一般直接忽略,详见 kbd(4) 手册。除非明确设置了 --no-convert 选项, 否则此命令也会同时设置控制台的键盘映射, 也就是将"LAYOUT"自动转化为最接近的控制台键盘映射 |
| list-x11-keymap-layouts | 列出所有可用的X11键盘的 Layout,以帮助正确使用 set-x11-keymap 命令 |
| list-x11-keymap-models | 列出所有可用的X11键盘的 models |
| list-x11-keymap-variants [LAYOUT] | 列出所有可用的X11键盘的 variants,有个可选的"LAYOUT"参数用于过滤出仅适合于特定键盘布局的变种 |
| list-x11-keymap-options | 列出所有可用的X11键盘的 options |
参考示例
1.显示当前本地化设置与键盘映射
ubuntu@VM-0-6-ubuntu:~$ localectl status # status 可以省略
System Locale: LANG=en_US.UTF-8
VC Keymap: n/a
X11 Layout: us
X11 Model: pc105
ubuntu@VM-0-6-ubuntu:~$ localectl
System Locale: LANG=en_US.UTF-8
VC Keymap: n/a
X11 Layout: us
X11 Model: pc105
说明:
- en_US.UTF-8:en 代表英文, US 代表美国,UTF-8 表示字符集
- zh_CN.GBK:zh 代表中文, CN 代表中国大陆,GBK 表示字符集
2.设置系统的本地化字符集环境变量
[root@htlwk0001host ~]# localectl set-locale LANG=en_GB.utf8
3.列出本地所有字符集
ubuntu@VM-0-6-ubuntu:~$ localectl list-locales
C.UTF-8
en_US.UTF-8
4.列出所有可用的控制台键盘映射
列出所有可用的控制台键盘映射,以帮助正确使用 set-keymap 命令:
先在ubuntu看了,没有相关设置,但根据-h看指令应该是没问题的
ubuntu@VM-0-6-ubuntu:~$ localectl list-keymaps
Failed to read list of keymaps: No such file or directory
下面是在centos上查看的:
[rhino@rhino010 ~]$ localectl list-keymaps
ANSI-dvorak
al
al-plisi
amiga-de
amiga-us
applkey
at
at-mac
at-nodeadkeys
at-sundeadkeys
atari-de
atari-se
atari-uk-falcon
atari-us
az
azerty
ba
5.设置控制台的键盘映射
[root@htlwk0001host ~]# localectl set-keymap en_GB
下载字符集
通过在ubuntu系统下使用localectl list-locales发现,是没有中文字符集的:
ubuntu@VM-0-6-ubuntu:~$ localectl list-locales
C.UTF-8
en_US.UTF-8
下面进行下载安装
1.安装基本的软件包
(第2步安装 zh_CN 中文字符集时要用到)
sudo apt-get update # 系统更新软件包列表
sudo apt-get install -y language-pack-zh-hans
sudo apt-get install -y language-pack-zh-hant # 安装zh_HK和zh_TW
==============================
centos:
yum groupinstall "fonts"
2.再查看本地字符集
ubuntu@VM-0-6-ubuntu:~$ localectl list-locales
C.UTF-8
en_US.UTF-8
zh_CN.UTF-8
zh_HK.UTF-8
zh_SG.UTF-8
zh_TW.UTF-8
3.设置
sudo localectl set-locale LANG=zh_CN.UTF-8
4.查看是否变化
ubuntu@VM-0-6-ubuntu:~$ localectl status
System Locale: LANG=zh_CN.UTF-8
VC Keymap: n/a
X11 Layout: us
X11 Model: pc105