在 Linux 中选择多个同名的可执行文件
Posted
技术标签:
【中文标题】在 Linux 中选择多个同名的可执行文件【英文标题】:Choosing between multiple executables with same name in Linux 【发布时间】:2010-09-29 15:13:42 【问题描述】:我使用的系统在/usr/bin
中安装了gnuplot
。我没有root,但我需要更新版本的gnuplot
,所以我安装到$HOME/usr/bin
。
我将$HOME/usr/bin
添加到我的路径中,但如果我只使用 gnuplot 命令,它仍会执行/usr/bin
中的那个。我宁愿不必在每次必须使用它时都指定$HOME/usr/bin/gnuplot
。
如何告诉 Linux 使用我的主目录中的那个,而不是 /usr/bin
中的那个?
【问题讨论】:
【参考方案1】:可执行文件按 PATH 顺序查找。您需要在路径前添加 $HOME/usr/bin
,如下所示:
export PATH="$HOME/usr/bin:$PATH"
【讨论】:
只是好奇,这是否也适用于其他操作系统?【参考方案2】:可执行文件按 PATH 顺序查找。您的 PATH 显然设置为 /usr/bin
在 ~/usr/bin/
之前。
【讨论】:
如果您提供一些文档来支持您的观点会更好。【参考方案3】:除了如前所述修改 PATH 外,您还可以使用这样的别名(在 BASH 中)
alias gn=$HOME/usr/bin/gnuplot
然后你只需运行它
gn
【讨论】:
不太确定硬编码路径是否是别名的好主意。我宁愿用它来指定我一直想要的标志。 在这种情况下,你想要一个特定版本的程序,我认为没有问题。 这个真的好用【参考方案4】:Bombe 说的没问题。我要补充一点,您应该在用户的 bashrc ($HOME/.bashrc
) 中声明用户特定的 PATH 条目,因此您的 PATH 设置仅适用于您的用户。
【讨论】:
他没有 root,所以我怀疑他是否可以全局更改 PATH :) 请重新阅读我的回答。我声明他应该更改自己用户的 .bashrc,这当然可以由自己的用户(实际上是文件的所有者)写入。以上是关于在 Linux 中选择多个同名的可执行文件的主要内容,如果未能解决你的问题,请参考以下文章
在linux中如何编译C程序,使之成为可执行文件?如何调试?