Something

首页 / 文章 / RSS

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)

要查看有关当前的区域设置信息,请使用 localelocalectl 命令。

$ 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