一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

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-Chineseglibc-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_TIMELC_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 才能看中文手册。

热门栏目