在 CentOS 决定更改命令行区域设置后,我该如何更改它?

在 CentOS 决定更改命令行区域设置后,我该如何更改它?

因此显然,CentOS 认定我是荷兰人,因此不应该有英语区域设置。

除了这给我带来很大困扰之外,我实际上很难将其改回来。似乎没有功能setlocale,并且system-config-language告诉我我使用的是英语区域设置,尽管我的环境不是这样。

任何帮助,将不胜感激。

输出自locale

LANG=nl_NL.UTF-8
LC_CTYPE="nl_NL.UTF-8"
LC_NUMERIC="nl_NL.UTF-8"
LC_TIME="nl_NL.UTF-8"
LC_COLLATE="nl_NL.UTF-8"
LC_MONETARY="nl_NL.UTF-8"
LC_MESSAGES="nl_NL.UTF-8"
LC_PAPER="nl_NL.UTF-8"
LC_NAME="nl_NL.UTF-8"
LC_ADDRESS="nl_NL.UTF-8"
LC_TELEPHONE="nl_NL.UTF-8"
LC_MEASUREMENT="nl_NL.UTF-8"
LC_IDENTIFICATION="nl_NL.UTF-8"
LC_ALL=

我的 ~/.bashrc 和 ~/.bash_profile 均不包含任何语言环境设置。此外,/etc/bashrc也不包含任何语言环境引用。

答案1

我刚刚遇到了同样的问题,并发现了为什么会出现这种情况,我想分享一下。我最近在工作中买了一台运行 OS X Lion 的新 iMac(以前的工作站是 OS X Snow Leopard)

OS X Lion 默认在终端中的环境变量 LANG 中设置语言环境。该变量设置为 nl_NL.UTF-8。当您通过 ssh 进入 CentOS 系统时,CentOS 系统上的 sshd 会在其 shell 中导入此环境变量。

我通过在终端偏好设置(设置->高级)中禁用“在启动时设置区域环境变量”来解决此问题

不知道您是否在桌面上运行 OS X,但底线是:CentOS 上的 sshd 从 ssh 客户端工作站导入区域设置。

高血压

答案2

如果您使用 SSH,还有另一种方法可以实现相同的结果,该方法在 iTerm 中也有效。您必须修改 SSH 配置:

sudo vi /etc/ssh_config

找到并注释掉包含

SendEnv LANG LC_*

答案3

如果system-config-language没有帮助你,试试这个。

  1. 进入CentOS系统配置目录

    $ cd /etc/sysconfig
    
  2. 备份您的语言设置文件

    $ cp i18n i18n.backup
    
  3. nano编辑语言设置文件以允许英语作为默认语言。您可以使用或vimSSH 上所有 CentOS 系统上可用的文本编辑器来编辑文件。我更喜欢vim,但nano更简单:

    $ nano i18n
    
  4. 编辑该文件以包含以下行作为文件的前三行:

    $ LANG="en_US.UTF-8"
    $ SYSFONT="latarcyrheb-sun16"
    $ SUPPORTED="en_US.UTF-8:en_US:en"
    
  5. 保存文件并重启系统。如果无法重启系统,则需要有重启权限init.d

这应该会启用新的语言设置。如果您无法通过 SSH 执行这些操作,因为访问限制太多,您可能需要通知 ISP 或任何可以物理访问服务器的人。

谨致问候和良好祝愿。

答案4

Fedora 16 以上版本定义了 GRUB 命令行中的语言。请参阅/boot/grub/grub.conf/etc/grub.conf

然后有/etc/sysconfig/i18n一个包含语言设置的文件。

相关内容