Locale(区域设置)是Linux系统中用于定义用户语言、地区和文化习惯的一组环境变量。它决定了系统如何显示和处理以下内容: - 字符编码和文字方向 - 日期和时间格式 - 数字和货币格式 - 排序和比较规则 - 消息翻译(如错误提示)
一个完整的locale通常由以下几部分组成:
1. 语言代码(如 en
表示英语)
2. 国家/地区代码(如 US
表示美国)
3. 字符编码(如 UTF-8
)
例如:en_US.UTF-8
表示美国英语,使用UTF-8编码
LANG
:默认的区域设置,作为其他未设置的LC_*变量的默认值LC_ALL
:覆盖所有其他区域设置(优先级最高)LC_CTYPE
:字符分类和大小写转换LC_NUMERIC
:数字格式LC_TIME
:日期和时间格式LC_COLLATE
:字符串排序规则LC_MONETARY
:货币格式LC_MESSAGES
:系统消息的语言LC_PAPER
:纸张尺寸标准LC_NAME
:姓名格式LC_ADDRESS
:地址格式LC_TELEPHONE
:电话号码格式LC_MEASUREMENT
:测量单位# 查看所有区域设置
locale
# 查看系统支持的所有locale
locale -a
# 查看已生成的locale
locale -av
export LANG=en_US.UTF-8
# 编辑/etc/locale.conf文件(系统范围)
# 或 ~/.config/locale.conf(用户范围)
echo "LANG=en_US.UTF-8" | sudo tee /etc/locale.conf
# 或者使用localectl(systemd系统)
sudo localectl set-locale LANG=en_US.UTF-8
如果需要的locale未生成:
# 编辑/etc/locale.gen,取消注释需要的locale
sudo nano /etc/locale.gen
# 生成locale
sudo locale-gen
zh_CN.UTF-8
)LC_COLLATE
变量改变排序规则*.UTF-8
)C.UTF-8
或en_US.UTF-8
以避免本地化问题