将二进制文件添加到我的路径中

将二进制文件添加到我的路径中

我有一个可执行文件。我想像其他命令一样在终端中仅使用名称执行该可执行文件。

我可以将我的可执行文件放入/usr/local/bin,也可以将其添加PATH~/.bashrc。两种方法都可以。

哪个更好?有什么区别吗?

答案1

例如,假设你有一个可执行文件myscript。你需要从终端运行它,如下所示:

/path/to/myscript

用户等级变更

如果PATH将该可执行文件的 添加到~/.bashrc,则可以从任何地方运行仅具有名称的可执行文件(阿维纳什·拉杰已经提到过),因为

myscript

但变化将影响用户级别。这意味着如果您有其他用户,他们无法仅使用名称访问可执行文件。如果他们拥有适当的权限,他们需要以以下身份运行可执行文件:

/path/to/myscript

此外,您将无法以如下方式运行该脚本须藤因为它不在PATH根目录中,要运行sudo你需要使用,

sudo /path/to/myscript

系统级变更

如果您将脚本放入其中,/usr/local/bin则系统范围内的所有用户都可以访问它。在这种情况下,任何用户都可以以以下身份运行您的可执行文件(需具有适当的权限)

myscript

在这种情况下,您也可以运行可执行文件sudo

sudo myscript

现在根据您的需要选择一种方式。

答案2

将文件的位置添加到文件$PATH中的变量中~/.bashrc只允许您从任何位置执行,而将其放入/usr/bin/将允许系统上的所有用户从任何位置执行该文件。

为什么会这样?因为,您的~/.bashrc文件只有您作为用户才能看到。因此,所有变量更改都仅限于您。而将该文件添加到/usr/bin将允许该文件保留在所有用户中,并且由于除非有人将其删除,否则它/usr/bin存在于$PATH变量中,因此将允许所有用户从任何位置执行它。

答案3

如果将可执行文件放入/usr/bin或,则仅需指定名称(而不是)/usr/local/bin即可运行该程序。your-program/usr/local/bin/your-program

如果您将包含该程序的目录添加到~/.bashrc文件中PATH,则只需输入其名称即可启动该目录中的任何可执行文件。

答案4

只是作为@souravc 答案的补充......

对于“用户级别更改”,~/.bashrc您可以简单地创建目录$HOME/bin/并将脚本放在其中,而不必编辑文件。

该目录将自动添加到PATH(至少自 Ubuntu 12.04 起),这意味着您将能够使用简单的命令运行该目录内的所有脚本/可执行文件:

myscript

只是我的意见。:)

PS-我试图将此作为对@souravc 回答的评论发布,但我的声誉不够。:-(

相关内容