Linux区域设置(locale)
简介
区域设置是一组环境变量,用于定义Linux系统上应用程序和shell会话的语言、国家/地区和字符编码设置(或任何其他特殊变体首选项)。
区域设置会影响时间/日期格式、一周的第一天、数字、货币和许多其他根据您在Linux系统上设置的语言或地区/国家格式化的值。
在本文中,我们将展示如何查看当前安装的系统区域设置,以及如何在Linux中设置系统的区域设置。
区域设置(locale)分类
分类 | 说明 |
---|---|
LC_TYPE | 语言符号 |
LC_NUMERIC | 数字 |
LC_COLLATE | 比较和排序 |
LC_TIME | 时间 |
LC_MONETARY | 货币 |
LC_MESSAGES | 信息 |
LC_NAME | 姓名书写方式 |
LC_ADDRESS | 地址 |
LC_TELEPHONE | 电话号码 |
LC_MEASUREMENT | 度量衡 |
LC_PAPER | 纸张尺寸 |
LC_IDENTIFICATION | 自身包含信息的概述 |
区域设置(locale)优先级
- LANGUAGE
- LC_ALL
- LC_xxx
- LANG
如何查看区域设置信息(locale)
要查看有关当前的区域设置信息,请使用 locale
或 localectl
命令。
$ locale LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_CTYPE="en_US.UTF-8" LC_NUMERIC=zh_CN.UTF-8 LC_TIME=zh_CN.UTF-8 LC_COLLATE="en_US.UTF-8" LC_MONETARY=zh_CN.UTF-8 LC_MESSAGES="en_US.UTF-8" LC_PAPER=en_US.UTF-8 LC_NAME=en_US.UTF-8 LC_ADDRESS=en_US.UTF-8 LC_TELEPHONE=en_US.UTF-8 LC_MEASUREMENT=zh_CN.UTF-8 LC_IDENTIFICATION=en_US.UTF-8 LC_ALL= $ localectl status System Locale: LANG=en_US.UTF-8 LANGUAGE=en_US VC Keymap: n/a X11 Layout: us X11 Model: pc105
使用 locale -k
命令,可以查看有关区域设置的更多信息,例如存储时间和日期格式的LC_TIME。
$ locale -k LC_TIME abday="日;一;二;三;四;五;六" day="星期日;星期一;星期二;星期三;星期四;星期五;星期六" abmon="1月;2月;3月;4月;5月;6月;7月;8月;9月;10月;11月;12月" mon="一月;二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月" am_pm="上午;下午" d_t_fmt="%Y年%m月%d日 %A %H时%M分%S秒" d_fmt="%Y年%m月%d日" t_fmt="%H时%M分%S秒" t_fmt_ampm="%p %I时%M分%S秒" ....
要显示所有可用区域设置的列表,请使用以下命令:
locale -a C C.utf8 en_AG en_AG.utf8 en_AU.utf8 en_BW.utf8 ...
如何设置区域设置(locale)
如果要更改或设置区域设置,请使用 update-locale
命令。
LANG
变量允许您设置整个系统的locale。以下命令将 LANG
设置为 en_IN.UTF-8
并删除 LANGUAGE
的定义。
$ sudo update-locale LANG=LANG=en_IN.UTF-8 LANGUAGE 或者 $ sudo localectl set-locale LANG=en_IN.UTF-8
要配置特定的locale,请编辑相应的变量。例如:
$ sudo update-locale LC_TIME=en_IN.UTF-8 或者 $ sudo localectl set-locale LC_TIME=en_IN.UTF-8
在以下文件中可以找到全局区域设置:
- /etc/default/locale – Ubuntu/Debian
- /etc/locale.conf – CentOS/RHEL
要为单个用户设置全局区域设置,只需打开~/.bash_profile文件并添加以下行即可。
LANG="en_IN.utf8" export LANG