正在将 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
。)
因此,这些说明的作者是否...
您想将文件复制到您选择的已在 PATH
中的位置,例如 /usr/local/bin
或 ~/bin
.
通常~/bin
是一个不错的选择,因为它是per-user并且不会污染系统。
(请注意,目录 ~/bin
仅在 .profile
文件存在时才被添加到 PATH
中,因此如果您还没有此目录并创建它现在,您需要开始新的登录 shell 或 运行 . ~/.profile
1 才能使用它。)
- 或 -
您想专门为此应用程序创建一个新目录(例如 ~/opt/rhasspy
)并将该目录附加到 PATH
变量。
这可以通过将行 export PATH=$PATH:~/opt/rhasspy
添加到您的 ~/.profile
文件来完成。然后,开始新的登录 shell 或使用 . ~/.profile
1 重新加载文件以使更改生效。
如果这个文件当前所在的目录可以永久保存,那么您也可以只将那个目录添加到PATH
而不是创建一个新的。
注意: PATH
始终包含 目录路径 ,shell 将在其中查找可执行文件.它不包含实际的文件路径!
1: 是的,从技术上讲,登录新的 shell 或登录 运行 那个export
手动声明而不是使用 . ~/.profile
因为后者会第二次应用之前已经完成的事情,所以例如它可以在 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
。)
因此,这些说明的作者是否...
您想将文件复制到您选择的已在
PATH
中的位置,例如/usr/local/bin
或~/bin
.通常
~/bin
是一个不错的选择,因为它是per-user并且不会污染系统。(请注意,目录
~/bin
仅在.profile
文件存在时才被添加到PATH
中,因此如果您还没有此目录并创建它现在,您需要开始新的登录 shell 或 运行. ~/.profile
1 才能使用它。)
- 或 -
您想专门为此应用程序创建一个新目录(例如
~/opt/rhasspy
)并将该目录附加到PATH
变量。这可以通过将行
export PATH=$PATH:~/opt/rhasspy
添加到您的~/.profile
文件来完成。然后,开始新的登录 shell 或使用. ~/.profile
1 重新加载文件以使更改生效。如果这个文件当前所在的目录可以永久保存,那么您也可以只将那个目录添加到
PATH
而不是创建一个新的。
注意: PATH
始终包含 目录路径 ,shell 将在其中查找可执行文件.它不包含实际的文件路径!
1: 是的,从技术上讲,登录新的 shell 或登录 运行 那个export
手动声明而不是使用 . ~/.profile
因为后者会第二次应用之前已经完成的事情,所以例如它可以在 PATH
中多次以相同的目录结束当前会话。在大多数情况下这很好。