这几天在阅读Red Hat Enterprise Linux 7的官方文档,发现了一些比之前有较大改善的系统管理方式,准备用一个系列的文章来分享一下自己的阅读、学习心得。在系统管理指导的开篇就提到了语言、字符编码、键盘布局的问题。下面就来分享一下这些内容,在后面的一系列文章中将无多余废话,还请见谅!
系统区域设置是指系统服务及用户接口的语言设置。键盘布局设置用于控制字符控制台布局及图形化用户接口。这些设置的修改可以通过修改/etc/locale.conf配置文件来实现,也可以使用localectl单元来实现。当然你也可以使用图形化用户界面来完成这个任务。本人习惯在字符控制台下完成Linux服务器的运维,所以本文将不会涉及图形化界面设置的操作。
一、设置系统区域
大部分系统的区域设置存放在/etc/locale.conf配置文件中
,在系统启动初期会被systemd守护进程读取。这个设置被每一个服务和用户继承,除非个别的用户或程序来重写他们。
1、通过修改/etc/locale.conf来实现系统区域设置的修改。编辑该文件:在该配置文件中写入如下2行:
LANG=zh_CN.UTF-8
LC_MESSAGES=C
zh:语言为汉语,CN:国家或地区*,UTF-8:字符编码为UTF-8。
LC_MESSAGES=C:确定区域设置并用于将诊断信息写入到标准错误输出中。
其他选项可参见下表:
Option | Description |
---|---|
LANG | Provides a default value for the system locale. |
LC_COLLATE | Changes the behavior of functions which compare strings in the local alphabet. |
LC_CTYPE | Changes the behavior of the character handling and classification functions and the multibyte character functions. |
LC_NUMERIC | Describes the way numbers are usually printed, with details such as decimal point versus decimal comma. |
LC_TIME | Changes the display of the current time, 24-hour versus 12-hour clock. |
LC_MESSAGES | Determines the locale used for diagnostic messages written to the standard error output. |
2、通过localectl命令来修改系统区域。
(1)显示当前系统区域状态。
[root@Geeklp-Administrator ~]# localectl status
System Locale: LANG=zh_CN.UTF-8
VC Keymap: cn
X11 Layout: cn
(2)列出可用的系统区域设置。
[root@Geeklp-Administrator ~]# localectl list-locales
...
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
zh_HK
zh_HK.big5hkscs
zh_HK.utf8
zh_SG
zh_SG.gb2312
zh_SG.gbk
zh_SG.utf8
zh_TW
zh_TW.big5
zh_TW.euctw
zh_TW.utf8
...
以上只节选了汉语系系统区域设置的内容。
(3)修改系统区域设置。
[root@Geeklp-Administrator ~]# localectl set-locale LANG=zh_HK.utf8
修改完成之后并不会立刻生效,必须重启之后才会生效。
二、设置键盘映射及X11布局
(1)列举键盘映射。
[root@Geeklp-Administrator ~]# localectl list-keymaps
(2)修改键盘映射。
[root@Geeklp-Administrator ~]# localectl set-keymap us
[root@Geeklp-Administrator ~]# localectl
System Locale: LANG=zh_CN.utf8
VC Keymap: us
X11 Layout: us
X11 Model: pc105+inet
X11 Options: terminate:ctrl_alt_bksp
在上文中,我们可以看出VC Keymap为cn,X11 Layout也为cn,修改完成之后立刻生效。
(3)修改X11布局。
[root@Geeklp-Administrator ~]# localectl set-x11-keymap cn
[root@Geeklp-Administrator ~]# localectl
System Locale: LANG=zh_CN.utf8
VC Keymap: cn
X11 Layout: cn
我们可以看到显示内容少了2行,修改及时生效。
下面列举一下localectl相关的帮助资料。
[root@Geeklp-Administrator ~]# localectl --help
localectl [OPTIONS...] COMMAND ...
Query or change system locale and keyboard settings.
-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
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