正在将 shell 文件复制到路径

Copying shell file to path

我是 WSL 和 Linux 的新手,但我正在尝试按照 rhasspy (https://rhasspy.readthedocs.io/en/latest/installation/#windows-subsystem-for-linux-wsl) 的安装说明进行操作。我成功地 运行 make install 命令,下一步说我应该将 rhasspy 复制到路径中的某处,但我不太清楚 copying 到路径的内容意思是

When installation is finished, copy rhasspy.sh somewhere in your PATH and rename it to rhasspy.

我将它添加到路径但没有任何改变所以我想知道我是否做错了什么。现在当我在 wsl 上 运行 rhasspy 时它说 rhasspy.sh: command not found。任何帮助将不胜感激!

PATH 是一个环境变量。当您启动 env 时,您会看到系统上的已知环境变量列表。

为了给你的 PATH 变量添加一些东西,你需要获取变量,添加提到的目录(前面有一个 semi-colon,很可能是作为分隔符)并存储它再次作为 PATH 变量。这可以按如下方式完成(自己的例子):

export PATH=$PATH:/home/this_user

它在 linux 中引用的 "PATH" 就在名为 /usr/bin 的文件夹中。当您在终端中键入命令时,它会在该位置查找具有该名称的程序。我不确定这是否是您正在寻找的 PATH,但希望它对您有所帮助

它的意思是,将它放在某个地方,当您在 shell.

中键入没有完整路径的名称时,系统会查找它

有一个环境变量 PATH 包含所有这些位置,由 : 分隔。 (查看 echo $PATH。)

因此,这些说明的作者是否...

  1. 您想将文件复制到您选择的已在 PATH 中的位置,例如 /usr/local/bin~/bin.

    通常~/bin是一个不错的选择,因为它是per-user并且不会污染系统。

    (请注意,目录 ~/bin 仅在 .profile 文件存在时才被添加到 PATH 中,因此如果您还没有此目录并创建它现在,您需要开始新的登录 shell 或 运行 . ~/.profile1 才能使用它。)

- 或 -

  1. 您想专门为此应用程序创建一个新目录(例如 ~/opt/rhasspy)并将该目录附加到 PATH 变量。

    这可以通过将行 export PATH=$PATH:~/opt/rhasspy 添加到您的 ~/.profile 文件来完成。然后,开始新的登录 shell 或使用 . ~/.profile1 重新加载文件以使更改生效。

    如果这个文件当前所在的目录可以永久保存,那么您也可以只将那个目录添加到PATH而不是创建一个新的。

注意: PATH 始终包含 目录路径 ,shell 将在其中查找可执行文件.它包含实际的文件路径!


1: 是的,从技术上讲,登录新的 shell 或登录 运行 那个export 手动声明而不是使用 . ~/.profile 因为后者会第二次应用之前已经完成的事情,所以例如它可以在 PATH 中多次以相同的目录结束当前会话。在大多数情况下这很好。