第 2 章 系统位置和键盘配置
系统区域设置指定系统服务和用户界面的语言设置。键盘布局设置控制文本控制台和图形用户界面中使用的布局。
可以通过修改 /etc/locale.conf
配置文件或使用 localectl 实用程序来设置这些设置。此外,您可以使用图形用户界面执行任务;有关此方法的说明,请参阅 Red Hat Enterprise Linux 7 安装指南。
2.1. 设置系统区域
系统范围的区域设置保存在 /etc/locale.conf
文件中,该文件在早期引导时由 systemd
守护进程读取。每个服务或用户都会继承 /etc/locale.conf
中配置的区域设置,单独程序或个人用户均覆盖它们。
/etc/locale.conf
的基本文件格式是一个以换行分隔的变量分配列表。例如:在 /etc/locale.conf
中带有英语信息的德语区域设置如下:
LANG=de_DE.UTF-8 LC_MESSAGES=C
此处,LC_MESSAGES 选项决定用于写入到标准错误输出的诊断消息的区域设置。要进一步指定 /etc/locale.conf 中的
区域设置,您可以使用几个其他选项,具体会在 表 2.1 “在 /etc/locale.conf 中可配置的选项” 中概述。有关这些选项的详情,请查看 locale(7)
手册页。请注意,不应在 /etc/locale.conf
中配置 LC_ALL 选项,它代表所有可能的选项。
选项 | 描述 |
---|---|
LANG | 为系统区域设置提供默认值。 |
LC_COLLATE | 更改比较本地字母中字符串的函数行为。 |
LC_CTYPE | 更改字符处理和分类功能以及多字节字符函数的行为。 |
LC_NUMERIC | 描述数字通常的打印方式,详情包括十进制点和十进制逗号。 |
LC_TIME | 更改当前时间、24 小时与 12 小时的显示。 |
LC_MESSAGES | 确定用于写入到标准错误输出的诊断消息的区域设置。 |
2.1.1. 显示当前状态
localectl
命令可用于查询和更改系统区域设置和键盘布局设置。要显示当前的设置,请使用 status
选项:
localectl
status
例 2.1. 显示当前状态
上一命令的输出列出了当前设置的区域设置、为控制台和 X11 窗口系统配置的键盘布局。
~]$ localectl status System Locale: LANG=en_US.UTF-8 VC Keymap: us X11 Layout: n/a
2.1.2. 列出可用的区域
要列出您的系统所有可用区域,请输入:
localectl
list-locales
例 2.2. 列出区域
假设您想要选择特定的英语区域设置,但您不确定它是否在系统中可用。您可以使用以下命令列出所有英语区域来检查:
~]$ localectl list-locales | grep en_
en_AG
en_AG.utf8
en_AU
en_AU.iso88591
en_AU.utf8
en_BW
en_BW.iso88591
en_BW.utf8
output truncated
2.1.3. 设置区域
要设置默认系统区域设置,以 root
用户身份运行以下命令:
localectl
set-locale
LANG
=locale
使用区域名称替换 locale,使用 localectl
list-locales
命令找到。以上语法还可用于从 表 2.1 “在 /etc/locale.conf 中可配置的选项” 配置参数。
例 2.3. 更改默认区域
例如,如果要将 English 设为默认区域设置,请先使用 list-locales
来查找此区域设置的名称。然后,作为 root 用户
以以下格式输入命令:
~]# localectl set-locale LANG=en_GB.utf8
2.1.4. 在使用 Kickstart 安装时永久进行系统区域设置
使用 Red Hat Kickstart 安装方法安装 Red Hat Enterprise Linux 时,升级操作系统后系统区域设置可能不会保留。
当 Kickstart 文件的 %packages
部分包含 --instLang
选项时,_install_langs
RPM 宏被设置为这个安装的特定值,并相应地调整已安装的区域集合。但是,这个调整只会影响此安装,而不是后续升级。如果升级重新安装 glibc 软件包,则会升级整个区域集合,而不是只升级您在安装过程中请求的区域设置。
为避免这种情况,请永久选择区域设置。您有以下选项:
- 如果您还没有启动 Kickstart 安装,请修改 Kickstart 文件使其包含应用这个步骤以全局设置 RPM 宏的说明: 在 Kickstart 安装过程中设置 RPM 宏
- 如果您已经安装了该系统,请应用这个步骤在系统中全局设置 RPM 宏: 全局设置 RPM 宏
在 Kickstart 安装过程中设置 RPM 宏
修改 Kickstart 文件的
%post
部分:LANG=en_US echo "%_install_langs $LANG" > /etc/rpm/macros.language-conf yum-config-manager --setopt=override_install_langs=$LANG --save
修改 Kickstart 文件的
%packages
部分:%packages yum-utils* %end
全局设置 RPM 宏
在
/etc/rpm/macros.language-conf
中创建包含以下内容的 RPM 配置文件:%_install_langs LANG
LANG 是
instLang
选项的值。使用以下内容更新
/etc/yum.conf
文件:override_install_langs=LANG