当 .profile 不存在用于编辑 PATH 时该怎么办?

Hon*_*ear 4 path environment-variables profile

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

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

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

Kus*_*nda 7

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

您可能要添加的行是

PATH="$HOME/.local/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

或者

PATH="$PATH:$HOME/.local/bin"
Run Code Online (Sandbox Code Playgroud)

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

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

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

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


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

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