![编辑PATH时.profile不存在怎么办?](https://linux22.com/image/119284/%E7%BC%96%E8%BE%91PATH%E6%97%B6.profile%E4%B8%8D%E5%AD%98%E5%9C%A8%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F.png)
我想编辑我的$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(例如)将忽略它。