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

Moh*_*ani 22 command-line bashrc

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

我可以把我的可执行文件放进去,/usr/local/bin或者我可以把它添加PATH~/.bashrc. 两者都会起作用。

什么是更好的?有什么区别吗?

sou*_* c. 19

例如,让我假设,您有一个可执行文件myscript. 你需要从终端运行它,

/path/to/myscript
Run Code Online (Sandbox Code Playgroud)

用户级别变更

如果PATH将该可执行文件的添加到~/.bashrc,则只能从任何地方运行具有名称的可执行文件(Avinash Raj已经提到),如

myscript
Run Code Online (Sandbox Code Playgroud)

但变化会影响到用户层面。这意味着如果您有任何其他用户,他们无法仅使用名称访问可执行文件。如果他们有适当的权限,他们需要运行可执行文件,

/path/to/myscript
Run Code Online (Sandbox Code Playgroud)

此外,您将无法以sudo 的身份运行脚本,因为它不在PATHroot 中,要根据sudo需要运行,

sudo /path/to/myscript
Run Code Online (Sandbox Code Playgroud)

系统级更改

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

myscript
Run Code Online (Sandbox Code Playgroud)

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

sudo myscript
Run Code Online (Sandbox Code Playgroud)

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


Avi*_*Raj 7

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

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


job*_*bin 7

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

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