为所有用户设置路径(登录和非登录外壳)

为所有用户设置路径(登录和非登录外壳)

好的。所以,我比 Redhat 更习惯 Ubuntu 和 CentOS,所以我希望有一些我所缺少的明显的解决方案。

我已经安装了 Anaconda (Python)。我把它放在:

/opt/anaconda3

我希望我自己和所有用户都能够在他们的路径中包含以下内容:

/opt/anaconda3/bin

我用谷歌搜索了一下,获得了很多关于如何“正确”完成我的任务的相互矛盾的信息。

我尝试过的东西:

  1. 将 bash 脚本添加到 /etc/profile.d
  2. 编辑/etc/profile
  3. 编辑/etc/bashrc
  4. 添加到根bashrc
  5. 编辑用户.bashrc

所有编辑都涉及某种形式:

PATH=/opt/anaconda3/bin:$PATH

或者

export PATH=/opt/anaconda3/bin:$PATH

选项 2 将 /opt/anaconda3/bin 添加到多个用户的路径中,但终端重新启动后仍然没有运行 bin 中的命令(即 conda install、ipython Notebook 等)

有任何想法吗?

答案1

在 /etc/profile.d/ 中创建一个名为(例如)anaconda.sh 的文件,其内容为:

PATH=/opt/anaconda3/bin:$PATH

尾随的“.sh”很重要,因为这是 /etc/profile 用于搜索要包含的文件的语法。 Bash 将在登录时读取 /etc/profile。如果您希望当前的 shell/终端接受更改,只需运行. /etc/profile.d/anaconda.sh

如果遇到非交互式 shell 需要它的情况,则只剩下 ~/.bashrc (除非调用环境使用 --rcfile 来覆盖该行为)。

答案2

将路径附加到 /etc/environment 文件中提到的文件路径。

这是在加载本地用户目录 .bashrc 文件之前首先加载的,因此它是设置系统范围变量的最佳位置。

相关内容