在Linux上,如何将一个目录添加到$PATH,以便在不同的会话中保持持久性?
背景
我试图添加一个目录到我的路径,所以它将永远在我的Linux路径。我试过了:
export PATH=$PATH:/path/to/dir
这是有效的,但是每当我退出终端并启动一个新的终端实例时,这个路径就丢失了,我需要再次运行导出命令。
我怎么做才能永久设置它呢?
在Linux上,如何将一个目录添加到$PATH,以便在不同的会话中保持持久性?
背景
我试图添加一个目录到我的路径,所以它将永远在我的Linux路径。我试过了:
export PATH=$PATH:/path/to/dir
这是有效的,但是每当我退出终端并启动一个新的终端实例时,这个路径就丢失了,我需要再次运行导出命令。
我怎么做才能永久设置它呢?
当前回答
这是一行代码。它在.bashrc中添加了一行。这一行将检查目录是否已经添加到路径中,如果没有则追加。这将防止每次源.bashrc时在该路径中复制您的目录。
echo "[[ \":\$PATH:\" != *\":$(pwd)/path/to/add:\"* ]] && export PATH=\"\${PATH:+\${PATH}}:$(pwd)/path/to/add\"" >> ~/.bashrc
source ~/.bashrc
其他回答
我的回答是关于在Ubuntu Linux (amd64)上设置Go环境。我曾经遇到过设置环境变量(GOPATH和GOBIN)路径的相同麻烦,每次在终端退出时丢失它,并使用source <file_name>重新构建它。
错误在于将路径(GOPATH和GOBIN)放在~/中。bash_profile文件。在浪费了几个小时之后,我发现解决方案是将GOPATH和GOBIN放在~/中。Bash_rc文件的格式如下:
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOPATH:$GOBIN
在这样做的过程中,Go安装工作得很好,没有路径丢失。
与此问题相关的原因是,对于非登录shell的设置,比如我们运行Go代码的Ubuntu终端或GNOME终端,是从~。/bash_rc文件和登录shell的设置是从~/中获取的。bash_profile文件。从~/。如果~/. Profile文件。Bash_profile文件不可达。
我认为最优雅的方式是:
把这个加到~中。/ bashrc文件(: If [-d "new-path"];然后 = $ PATH:新路径 fi * ~ / . bashrc *来源
(Ubuntu)
我认为最优雅的方式是:
将此添加到~/。bashrc文件。( 执行如下命令: 中~ / . bashrc 在里面添加你的路径: 导出路径= $路径:/ bin / opt /节点 源~ / . bashrc
(Ubuntu)
经过这么多的研究,我找到了一个简单的解决方案(我使用的是Elementary OS),灵感来自Flutter - Step by Step Installation on Linux - Ubuntu。
2 .执行以下命令,以编辑方式打开“。bashrc”文件。(你 也可以使用vi或任何其他编辑器)。 ~$ sudo nano ~/.bashrc 在文件末尾添加以下行并保存。 导出路径= " [FLUTTER_SDK_PATH] /颤振/ bin: $路径” 例如: 导出路径= " / home / rageshl / dev /颤振/ bin:美元路径”
我相信这是在Ubuntu发行版中在Flutter中设置路径的永久解决方案。
本地用户可在CentOS或redhat Linux (RHEL)上使用:
echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile
这将当前目录(或者您可以使用另一个目录)添加到PATH。这使它成为永久的,但它在下一次用户登录时生效。
如果你不想重新登录,那么你可以使用:
source ~/.bash_profile
这将重新加载#用户特定环境和启动程序。该注释出现在.bash_profile文件中。