我正在尝试通过在任何地方输入程序名称(例如 usearch [options])来执行程序(Usearch 或 samtools)。我正在运行 Ubuntu。
说明说“将二进制文件添加到您的路径以使其在命令行上可用”但我不知道这是什么意思或如何做到这一点。在线搜索带来了一些我完全无法理解的东西。
有人可以一步一步地告诉我如何做到这一点吗?
答案1
“将二进制文件添加到您的路径以使其在命令行上可用”
在 Unix 中,PATH
是环境变量它定义了当您在命令行中输入可执行程序时,shell 在哪里查找要运行的可执行程序。如果您执行:
echo $PATH
您可以看到您的目录是什么样子。当您输入命令(如)时,将按顺序搜索PATH
上的所有目录。例如,我的 $PATH 是:PATH
ls
.:/usr/local/bin:/usr/bin:/bin
当我输入时,ls
shell 会在(当前目录)中查找可执行文件.
,然后在所有其他目录中查找,直到找到它,可能在 中/bin/ls
。
您需要确保您的脚本是可执行的(chmod +x myscript
),然后它需要位于PATH
变量中的一个目录中。
在系统的 bin 目录中安装本地脚本和程序被认为是一种不好的做法。通常,我会将以下内容放入 shell 的启动配置文件中,但也.profile
可能取决于 shell:.bashrc
.zshrc
export PATH=$HOME/bin:$PATH
这会将您主目录中的个人 bin 目录添加到路径中,您可以在其中放置自己的脚本。一旦您更改了 shell 的配置文件,您将需要再次登录才能读取配置文件。
如果你想为系统上的所有用户安装你的脚本,那么放置脚本的最好位置是。你应该使用上述机制/usr/local/bin
确保在你的路径中。/usr/local/bin
因此你需要:
- 使你的程序可执行(
chmod +x my-program
) - 也许添加您自己的本地 bin 目录或者添加
/usr/local/bin
到PATH
您的定义中.profile
。 - 将其安装在您环境中的目录中
PATH
。
答案2
您需要将 bin 目录添加到您的 PATH 变量中。
如果您在终端中输入“echo $PATH”,它将显示一串路径。现在您需要知道程序的安装位置,并确保 PATH 包含适当的 bin 目录。尝试在终端中执行“PATH=$PATH:/Path-to-bin/”,现在您只需输入 Usearch 即可执行所需的程序。
为每个终端窗口将 bin 目录添加到 PATH 中可能会很烦人,幸运的是,.bashrc(位于 ~/)会在您打开新终端时运行。因此,您可以使用您最喜欢的编辑程序(即“vim ~/.bashrc”)将“PATH=$PATH://”行添加到 .bashrc。
.bashrc 是隐藏文件。因此输入“ls”不会列出 .bashrc,请尝试“ls -la”以查看 .bashrc 是否是您的主目录。
希望这会有所帮助,如果您有更多具体的问题,请告诉我。
祝你好运!