linux:如何永久全局地更改环境变量

linux:如何永久全局地更改环境变量

我想对登录我的 Linux 系统的每个用户执行以下操作:

export PATH=$PATH:~/.path

除了在每个 ~/.bashrc 文件中手动添加该行之外,我不知道如何做到这一点。

另外,我的一个 cron 作业运行一个程序,我想(对于该 cron 作业)将 PYTHONPATH 设置为特定值。任何 .bashrc 文件都会影响 cron 作业的环境吗?如何更改 cron 作业的环境。

另外,我现在想知道如何在启动时更改 PATH 变量。其他程序似乎在安装时会这样做,那么我该怎么做呢?

答案1

shell 的环境

本质上,任何运行进程的东西在启动时都会读取配置文件,要影响该环境,您需要点击其配置文件。

对于用户 shell,"明显" 的位置是.profile.bashrc.bash_profile(我认为) 以及可能还有其他几个我不记得的位置。显然,如果您使用zshcshtcsh或任何其他 shell,则还有更多和其他位置。

您的窗口环境(可能是 KDE 或 Gnome)会读取初始化文件。您在其下运行的特定窗口管理器也可能读取配置文件。我承认,即使是我自己安装的,我也不知道这些文件的名称。

最后,所有这些环境通常在某个地方都有“主”配置文件/etc。它们为用户不需要的东西提供默认值。

我认为,自行安装的程序会认真检查各种可能性。各种 Linux 发行版可能会为此提供一些帮助脚本。

计划任务

这个简单多了。出于安全原因,cron始终只向子进程传递几个环境变量。我认为USER是其中之一,还有MAILTO另一个。据我所知,没有PATH设置 - 这常常让新手烦恼。cron 作业的环境与您的 shell 环境完全不同!您可以在环境中通过命令行传递任何您想要的东西crontab,或者启动一个脚本并让其设置所需的任何环境。

答案2

将 bashrc 更改应用于全部用户,您可以修改/etc/bash.bashrc(这适用于 Ubuntu)。

另外,如上面的答案所示,请确保此文件来自/etc/profile

相关内容