查看当前 LANG
有如下三种方法可以查看当前的 LANG.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [CentOS72 ~]$ echo $LANG zh_CN.UTF-8 [CentOS72 ~]$ locale LANG=zh_CN.UTF-8 LC_CTYPE="zh_CN.UTF-8" LC_NUMERIC="zh_CN.UTF-8" LC_TIME="zh_CN.UTF-8" LC_COLLATE="zh_CN.UTF-8" LC_MONETARY="zh_CN.UTF-8" LC_MESSAGES="zh_CN.UTF-8" LC_PAPER="zh_CN.UTF-8" LC_NAME="zh_CN.UTF-8" LC_ADDRESS="zh_CN.UTF-8" LC_TELEPHONE="zh_CN.UTF-8" LC_MEASUREMENT="zh_CN.UTF-8" LC_IDENTIFICATION="zh_CN.UTF-8" LC_ALL= [CentOS72 ~]$ cat /etc/locale.conf LANG=zh_CN.UTF-8 [CentOS72 ~]$ |
临时修改 LANG
1 2 3 4 5 | [CentOS72 ~]$ date 2016年 09月 13日 星期二 15:59:02 CST [CentOS72 ~]$ LANG=en_US.UTF-8 date Tue Sep 13 15:59:17 CST 2016 [CentOS72 ~]$ |
永久修改 LANG
直接修改“/etc/locale.conf”
1 | [CentOS72 ~]$ sudo vim /etc/locale.conf |
使用“localectl list-locales”查看可用的 LANG 值
1 2 3 4 5 6 7 8 9 10 11 12 | [CentOS72 ~]$ localectl list-locales | grep en_US en_US en_US.iso88591 en_US.iso885915 en_US.utf8 [CentOS72 ~]$ localectl list-locales | grep zh_CN zh_CN zh_CN.gb18030 zh_CN.gb2312 zh_CN.gbk zh_CN.utf8 [CentOS72 ~]$ |
修改为英文
1 2 3 | [CentOS72 ~]$ localectl set-locale LANG=en_US.UTF-8 [CentOS72 ~]$ cat /etc/locale.conf LANG=en_US.UTF-8 |
修改为中文
1 2 3 | [CentOS72 ~]$ localectl set-locale LANG=zh_CN.UTF-8 [CentOS72 ~]$ cat /etc/locale.conf LANG=zh_CN.UTF-8 |
以上修改都需要重启系统才能生效
流程分析
系统在启动时通过”/etc/profile.d/lang.sh”加载“/etc/locale.conf”中的 LANG 环境变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | [CentOS72 ~]$ head -n14 /etc/profile.d/lang.sh | cat -n # /etc/profile.d/lang.sh - set i18n stuff sourced=0 if [ -n "$LANG" ]; then saved_lang="$LANG" [ -f "$HOME/.i18n" ] && . "$HOME/.i18n" && sourced=1 LANG="$saved_lang" unset saved_lang else for langfile in /etc/locale.conf "$HOME/.i18n" ; do [ -f $langfile ] && . $langfile && sourced=1 done fi [CentOS72 ~]$ |