编辑PATH时.profile不存在怎么办?

编辑PATH时.profile不存在怎么办?

我想编辑我的$PATH环境变量。根据几个教程和其他来源(例如这个问答),最常见的方式是编辑~/.profile.然而,对我来说,不存在这样的文件。我能做些什么? (某些系统上有不同的名称吗?我应该创建它吗?需要在里面放什么?还有其他方法吗?)

我是网络集群上的用户,显然我不想编辑任何全局环境变量。我~/.bashrc之前曾编辑过为我的用户更改一些内容,并且有多个~/.- 文件,但没有~/.profile.

我使用的是 Ubuntu 16.04.2 LTS,代号:Xenial。echo $PATH只给我一些全局 bin 目录,但是在安装一些用户特定的 bin 后(到/path/to/home~/expanded/.local/bin/)我只想将其添加到 PATH 中。

答案1

如果你有一个~/.bash_profile文件,那么编辑它(因为你似乎正在使用bash(因为你在 Linux 上并且因为你提到存在一个~/.bashrc你之前编辑过的文件))。 shell仅在不存在时bash尝试读取。如果两个文件都不存在,您可以创建.~/.profile~/.bash_profile~/.bash_profile

您可能想要添加的行是

PATH="$HOME/.local/bin:$PATH"

或者

PATH="$PATH:$HOME/.local/bin"

取决于您是否希望/需要首先或最后搜索添加的目录。

不需要,export因为PATH变量已经导出。

$HOME与 相同~,但恕我直言,在 shell 脚本中更具表现力。它也表现为一个适当的变量,但~事实并非如此。参见例如为什么波形符 (~) 不在双引号内展开?

/另请注意,在 Unix 上,路径是用正斜杠 () 分隔的,而不是反斜杠 ( \),因此您需要~/.bash_profile而不是~\.bash_profile


大多数sh类似的 shell(只有bash一个).profile在作为登录 shell 启动时会读取用户的主目录。这就是为什么您链接到的答案是提及.profile而不是.bash_profile;问题中没有提到所使用的具体外壳。

bash如果存在自己的特殊启动文件,某些 shell(例如)将忽略它。

相关内容