如何将特定目录的 bin 子目录添加到 PATH 以便能够从任何目录运行软件应用程序?

如何将特定目录的 bin 子目录添加到 PATH 以便能够从任何目录运行软件应用程序?

我刚下载了一个软件杰化学,一个允许我创建、管理和分析化学结构的工具。我运行安装程序.sh脚本并安装指南建议添加binjchemsuite目录的子目录,以便PATH能够从任何目录运行 JChem 应用程序。

我阅读了一个相关问题如何将给bin定目录的子目录的所有子目录包含在$PATH

for d in /opt/*/bin; do PATH="$PATH:$d"; done

我也读过有关 stow 的内容,但我从未使用过它,而且我不知道从 GNU 网站获取哪个版本。

但就我而言,/Download这可能是一个安全问题。

因此,我怎样才能听从他们的建议呢?

如何将特定目录的 bin 子目录添加到 PATH 以便能够从任何目录运行软件应用程序。

答案1

既然你提到了 GNU stow...

使用 GNU stow,您可以将jchemsuite目录移动到类似的地方 $HOME/local/stow(这样您就拥有了$HOME/local/stow/jchemsuite)。

然后:

cd "$HOME/local/stow"
stow -v jchemsuite

然后通过编辑 shell 的启动文件来确保它$HOME/local/bin在你的文件中(通常或者如果你在 Linux 上):PATH~/.bash_profile~/.bashrc

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

在下一个新的 shell 会话中,您将能够使用 JChem 二进制文件,而无需指定它们的完整路径。

要卸载并删除 JChem 的二进制文件:

cd "$HOME/local/stow"
stow -Dv jchemsuite
rm -rf jchemsuite

这假设 JChem 实际上允许您移动jchemsuite目录(它可能通过代码内部某处的原始路径引用它)。如果没有,只需设置PATH

 PATH="$PATH:/path/to/JChem/jchemsuite/bin"

我认为他们是这样的预计人们要做的事。

答案2

假设您使用的是 bash,如果使用其他 shell,请指定,我将更新我的示例。

打开您的.bashrc文件(应位于您的主文件夹中,即/home/youruser

例如emacs ~/.bashrc

然后转到最后一行并添加以下内容:

export PATH=/path/to/bin:/another/path/to/bin:$PATH

这样你就可以将PATH任何你想要的内容添加到环境变量中,并且你将保留系统中默认的内容。

请注意,要应用更改,您需要注销然后重新登录(环境变量在登录时定义,因为文件.bashrc在登录时“执行”)。

如果您想查看 处定义的内容PATH,只需执行echo $PATH

相关内容