哪些配置文件会覆盖 /etc/default/locale?

哪些配置文件会覆盖 /etc/default/locale?

由于某些奇怪的原因,我发现我有几个LC_区域设置变量设置为我不认识的值(en_ZA.UTF-8)。因此,我想通过命令行并使用适当的配置文件对其进行不同的设置 - 永久地。

但这些是什么文件呢?我认为应该是这样/etc/default/locale,至少在系统层面上是这样。但在那里我看到:

#  File generated by update-locale
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"

是否还有其他文件 LC_MONETARYLC_TIME等可以设置?我四处搜寻,发现了任何嫌疑人。

PS - 我正在使用 Debian Stretch。

答案1

区域设置是通过环境变量传达的,因此可以在可以设置环境变量的许多位置中的任何位置进行设置。/etc/default/locale如果您通过系统区域设置配置界面,则记录系统默认区域设置的位置,但设置可以在设置环境变量的任何其他位置,例如(我只列出最常见的):

  • /etc/profile
  • /etc/profile.d/*
  • /etc/environment
  • ~/.profile, 或~/.bash_profile~/.login~/.zprofile取决于您的登录 shell
  • ~/.pam_environment
  • (仅适用于在终端中运行的 shell)/etc/bash.bashrc/etc/zshrc~/.bashrc~/.zshrc等。

搜索整个/etc点文件应该可以找到它:

grep -rs en_ZA /etc ~/.[!.]*

区域设置如果未设置则从设置开始LANG,并且LC_ALL优先于所有设置。在 的输出中locale,如果设置是从显式设置导出的LANGLC_ALL与显式设置相反,则设置将打印在双引号中。

相关内容