确认系统是否支持zh_cn.utf-8需执行locale -a | grep zh_cn.utf-8,有输出则已安装,无输出则需先安装中文语言包,否则修改/etc/locale.conf无效。

直接改 /etc/locale.conf 文件是最稳妥的永久方案,但必须确认系统已安装 zh_CN.UTF-8 locale,否则改了也无效。
怎么确认系统是否支持 zh_CN.UTF-8
执行 locale -a | grep zh_CN.UTF-8。如果输出为空,说明没装中文语言包,此时改 LANG=zh_CN.UTF-8 会失效——终端仍显示英文,locale 命令也会报错“locale not supported”。
- 有输出(如
zh_CN.utf8或zh_CN.UTF-8)→ 可跳过安装,直接配置 - 无输出 → 必须先安装:运行
yum groupinstall "Chinese Support"(推荐)或yum install kde-l10n-Chinese - 注意:
locale -a输出的名称大小写和拼写必须完全匹配,比如有些系统是zh_CN.utf8(小写),而配置文件里写成zh_CN.UTF-8(大写)会导致不生效
永久修改 LANG 的两种等效方式
改 /etc/locale.conf 和用 localectl set-locale 效果一致,本质都是写入该文件。后者更安全,避免手误编辑出错。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 推荐命令行方式:
localectl set-locale LANG=zh_CN.UTF-8 - 手动编辑方式:用
vi /etc/locale.conf,确保只有一行内容LANG=zh_CN.UTF-8,不要有多余空格或注释 - 改完后无需重启,新终端会立即生效;已打开的终端需重新启动 bash(执行
exec bash)或新开窗口 - 切勿设置
LC_ALL—— 它会强制覆盖所有LC_*变量,可能破坏某些程序对时间/数字格式的预期
为什么改完还是英文?常见失效原因
最常踩的坑不是配置错,而是环境变量被用户级文件二次覆盖。即使 /etc/locale.conf 正确,~/.bashrc 或 ~/.bash_profile 里若有 export LANG=en_US.UTF-8,就会优先生效。
- 检查用户级配置:
grep -E "^(export )?LANG=" ~/.bashrc ~/.bash_profile 2>/dev/null - 若发现冲突行,删掉或注释掉;不要简单追加,避免重复 export 导致 shell 解析异常
- SSH 连接时也可能受客户端 locale 影响:检查本地终端是否发送了
AcceptEnv LANG LC_*,服务端/etc/ssh/sshd_config中若禁用了该选项,客户端设置无效 - GNOME 桌面环境有自己的语言设置,和终端独立;图形界面需在“Settings → Region & Language”里单独设为中文,否则菜单仍是英文
真正起作用的是 LANG 值 + 对应 locale 是否真实存在 + 没有更高优先级的覆盖。三者缺一不可,其中 locale 是否可用最容易被忽略。










