为什么“导出”没有永久改变我的环境变量?

为什么“导出”没有永久改变我的环境变量?

运行 Fedora 20。尝试使用“export”永久设置 LANG 和 LC_TIME 变量。当我运行它时,它工作正常并且我可以看到它已更改。当我重新启动时,它又变回来了。我是通过 bash shell 完成这一切的。我查看了我的主文件夹中的 .bash_profile 和 .bashrc ,但没有看到任何从中获取错误值的内容。我还检查了 /etc - 文件 profile 和 bashrc,以及 /etc/profile.d/。但我似乎无法弄清楚它从哪里获得这个价值。

1) Fedora 从哪里获取 LANG 和 LC_TIME 环境变量以及它如何知道选择哪一个?

2) 如何为单个用户永久更改它?

3)我如何在全球范围内(对于所有用户)更改它并使其保持不变?

4)为什么“导出”不能使其持久化?

我需要能够通过 shell 完成所有这些工作。谢谢!

答案1

在 bash 中,“export”内置函数会将变量导出到 shell 进程的环境中。从该 shell 启动的任何进程都将继承该 shell 的进程。

如果您希望环境变量持久存在,则必须将其设置在启动的软件将继承的某个位置。对于与语言环境相关的变量,请使用 /etc/locale.conf (联机帮助页)。对于其他变量,您需要找到另一个地方。该位置很可能取决于您尝试设置环境变量的目的。

例如,如果要为特定的 systemd 服务设置环境变量,则需要向系统单元文件添加适当的“Environment”指令。看这里并搜索“环境”以获取有关该主题的更多信息。

相关内容