03-linux字符集、系统的本地化(locale)与键盘布局-localectl
03-linux字符集、系统的本地化(locale)与键盘布局-localectl

03-linux字符集、系统的本地化(locale)与键盘布局-localectl

命令介绍

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

image-20230223115258120

image-20230223115233651

发表回复

您的电子邮箱地址不会被公开。