最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
CentOS 7如何修改系统默认语言
时间:2026-07-13 07:02:46 编辑:袖梨 来源:一聚教程网
CentOS 7改中文需先安装zh_CN.UTF-8语言包(推荐yum groupinstall "Chinese Support"),再通过localectl set-locale LANG=zh_CN.UTF-8或编辑/etc/locale.conf写入LANG=zh_CN.UTF-8永久生效,最后验证locale输出及man页等组件是否同步中文。
CentOS 7 默认语言是 en_US.UTF-8,想改成中文,不能只改一个地方——必须先确认中文语言包已安装,再设置全局 LANG,否则终端、日志、命令输出依然显示英文,甚至出现乱码。
检查系统是否已有 zh_CN.UTF-8 语言环境
直接执行:locale -a | grep zh_CN.UTF-8。如果返回空,说明没装中文支持;如果返回 zh_CN.UTF-8,说明语言包已就位,可跳过安装步骤。
常见错误现象:执行 locale 显示 LANG=en_US.UTF-8,但 locale -a 找不到 zh_CN.UTF-8 ——此时强行写入配置文件也没用,localectl 或 /etc/locale.conf 会静默失败。
- CentOS 7 官方源里,中文语言包主要在
kde-l10n-Chinese或glibc-common里,但单独装glibc-common不够,它只提供基础字符集,不带本地化规则 - 推荐用
yum groupinstall "Chinese Support",它会自动拉取kde-l10n-Chinese、字体、输入法框架等全套组件 - 如果 yum 报错 “No package Chinese Support available”,说明仓库没启用或镜像源太旧,可临时换阿里云/清华源再试
永久设置 LANG=zh_CN.UTF-8 的两种等效方式
只要 zh_CN.UTF-8 已存在,就可用以下任一方式生效,效果完全一致:
- 用
localectl set-locale LANG=zh_CN.UTF-8——这是 systemd 推荐方式,会自动写入/etc/locale.conf,且立即影响新启动的 shell - 手动编辑
/etc/locale.conf,写入单行:LANG=zh_CN.UTF-8(注意不是LANG="zh_CN.UTF-8",引号会导致解析失败)
别碰 /etc/sysconfig/i18n ——那是 CentOS 6 的路径,CentOS 7 读它无效;也别改用户级的 ~/.bashrc,那只是临时生效,且不作用于系统服务、cron、systemd unit。
验证修改是否真正生效
重启终端或重新登录后,运行 locale,确认输出中 LANG=zh_CN.UTF-8 且所有 LC_* 变量都未被覆盖(如 LC_TIME、LC_MESSAGES 应继承 LANG 值)。
容易踩的坑:
-
locale显示正确,但ls列中文文件名仍乱码 → 检查文件系统是否为 UTF-8 编码(ext4 默认支持,但 NFS 或旧挂载可能不默认启用iocharset=utf8) - 图形界面(GNOME)变中文了,但
journalctl日志还是英文 → 确认LANG是系统级设置,不是仅用户级;某些服务(如 sshd)可能缓存旧 locale,需systemctl restart sshd - 执行
date显示英文星期/月份 → 说明LC_TIME被单独设成了英文,删掉/etc/locale.conf中多余的LC_TIME=...行即可
最常被忽略的一点:改完语言后,man 页面默认仍是英文——因为 man 包是独立安装的,需额外执行 yum install man-pages-zh-CN 才能看中文手册。