使用 .bashrc 文件的简单替代解决方案

使用 .bashrc 文件的简单替代解决方案

我有可执行文件:/opt/Eclipse/eclipse。我想从终端控制台的任意路径运行它。为此我创建了符号链接:

ln -s /opt/Eclipse/eclipse /usr/bin/eclipse

但这无法帮助运行 eclipse,只需在终端窗口的任何位置输入 ./eclipse 即可。系统未找到可执行文件。我原本以为系统会eclipse在 中找到链接/usr/bin。我的想法哪里错了?

答案1

为什么还要费心链接它?您只需将其添加/opt/Eclipse到您的即可PATH。在您的~/.bashrc

PATH="/opt/Eclipse:$PATH"

进而

source ~/.bashrc

那么你应该可以运行

eclipse

答案2

使用 .bashrc 文件的简单替代解决方案

您无需创建符号链接,只需在文件中添加别名即可.bashrc……为此,您可以先将其添加alias eclipse='/file/pathway/to/executable'到文件底部。然后,您可以通过运行并.bashrc进行测试……source .bashrceclipse

答案3

这确实乍一看可能有点令人惊讶。bash(以及其他 shell)维护着哈希在用户发出命令时快速找到二进制文件$PATH。另一种方法是每次发出命令时扫描所有这些目录,以找出命令的含义。而这很昂贵。

在某些情况下哈希未正确更新。阅读这里这里(部分hash)以了解详细信息。

你似乎发现了这样一个罕见的情况,即实际目录内容和该目录中的值哈希不同步。一个简单的

hash -r

告诉bash重建其哈希值。如果您想保持当前终端窗口打开,则只需执行一次。如果您关闭并重新打开终端窗口,则不需要这样做。

相关内容