我想对登录我的 Linux 系统的每个用户执行以下操作:
export PATH=$PATH:~/.path
除了在每个 ~/.bashrc 文件中手动添加该行之外,我不知道如何做到这一点。
另外,我的一个 cron 作业运行一个程序,我想(对于该 cron 作业)将 PYTHONPATH 设置为特定值。任何 .bashrc 文件都会影响 cron 作业的环境吗?如何更改 cron 作业的环境。
另外,我现在想知道如何在启动时更改 PATH 变量。其他程序似乎在安装时会这样做,那么我该怎么做呢?
答案1
shell 的环境
本质上,任何运行进程的东西在启动时都会读取配置文件,要影响该环境,您需要点击其配置文件。
对于用户 shell,"明显" 的位置是.profile
、.bashrc
、.bash_profile
(我认为) 以及可能还有其他几个我不记得的位置。显然,如果您使用zsh
、csh
、tcsh
或任何其他 shell,则还有更多和其他位置。
您的窗口环境(可能是 KDE 或 Gnome)会读取初始化文件。您在其下运行的特定窗口管理器也可能读取配置文件。我承认,即使是我自己安装的,我也不知道这些文件的名称。
最后,所有这些环境通常在某个地方都有“主”配置文件/etc
。它们为用户不需要的东西提供默认值。
我认为,自行安装的程序会认真检查各种可能性。各种 Linux 发行版可能会为此提供一些帮助脚本。
计划任务
这个简单多了。出于安全原因,cron
始终只向子进程传递几个环境变量。我认为USER
是其中之一,还有MAILTO
另一个。据我所知,没有PATH
设置 - 这常常让新手烦恼。cron 作业的环境与您的 shell 环境完全不同!您可以在环境中通过命令行传递任何您想要的东西crontab
,或者启动一个脚本并让其设置所需的任何环境。
答案2
将 bashrc 更改应用于全部用户,您可以修改/etc/bash.bashrc
(这适用于 Ubuntu)。
另外,如上面的答案所示,请确保此文件来自/etc/profile
。