使脚本可执行

使脚本可执行

我正在尝试通过在任何地方输入程序名称(例如 usearch [options])来执行程序(Usearch 或 samtools)。我正在运行 Ubuntu。

说明说“将二进制文件添加到您的路径以使其在命令行上可用”但我不知道这是什么意思或如何做到这一点。在线搜索带来了一些我完全无法理解的东西。

有人可以一步一步地告诉我如何做到这一点吗?

答案1

“将二进制文件添加到您的路径以使其在命令行上可用”

在 Unix 中,PATH环境变量它定义了当您在命令行中输入可执行程序时,shell 在哪里查找要运行的可执行程序。如果您执行:

echo $PATH

您可以看到您的目录是什么样子。当您输入命令(如)时,将按顺序搜索PATH上的所有目录。例如,我的 $PATH 是:PATHls

.:/usr/local/bin:/usr/bin:/bin

当我输入时,lsshell 会在(当前目录)中查找可执行文件.,然后在所有其他目录中查找,直到找到它,可能在 中/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

因此你需要:

  1. 使你的程序可执行(chmod +x my-program
  2. 也许添加您自己的本地 bin 目录或者添加/usr/local/binPATH您的定义中.profile
  3. 将其安装在您环境中的目录中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 是否是您的主目录。

希望这会有所帮助,如果您有更多具体的问题,请告诉我。

祝你好运!

相关内容