Linux 正在将shell文件复制到路径
我不熟悉WSL和Linux,但我尝试按照rhasspy()的安装说明进行操作。我已经成功运行了Linux 正在将shell文件复制到路径,linux,windows,windows-subsystem-for-linux,Linux,Windows,Windows Subsystem For Linux,我不熟悉WSL和Linux,但我尝试按照rhasspy()的安装说明进行操作。我已经成功运行了makeinstall命令,下一步说我应该在路径中的某个地方复制rhasspy,但我不太明白复制到路径意味着什么 安装完成后,将rhasspy.sh复制到路径中的某个位置,并将其重命名为rhasspy 我把它添加到路径中,但没有任何更改,所以我想知道是否有什么地方我做错了。现在,当我在wsl上运行rhasspy时,它会显示rhasspy.sh:command not found。任何帮助都将不胜感激 路
makeinstall
命令,下一步说我应该在路径中的某个地方复制rhasspy,但我不太明白复制到路径意味着什么
安装完成后,将rhasspy.sh复制到路径中的某个位置,并将其重命名为rhasspy
我把它添加到路径中,但没有任何更改,所以我想知道是否有什么地方我做错了。现在,当我在wsl上运行rhasspy时,它会显示
rhasspy.sh:command not found
。任何帮助都将不胜感激 路径是一个环境变量。启动env
时,您会看到系统上已知环境变量的列表
为了向路径
变量中添加一些内容,您需要获取该变量,添加所提到的目录(前面有一个分号,很可能是一个分隔符),然后再次将其存储为路径
变量。这可以通过以下方式完成(自己的示例):
它在linux中引用的
“PATH”
就在名为/usr/bin
的文件夹中。在终端中键入命令时,它会在位置中查找具有该名称的程序。我不确定这是否是您要查找的路径,但希望它有帮助它说的是,将它放在某个地方,当您在shell中键入其名称时,如果没有完整路径,系统将查找它
有一个环境变量PATH
,它包含所有这些位置,由分隔:
。(签出echo$PATH
)
所以,这些说明的作者让你决定是否
您希望将文件复制到您选择的已在路径中的位置,例如/usr/local/bin
或~/bin
通常,~/bin
是一个不错的选择,因为它是针对每个用户的,并且不会污染系统
(请注意,目录~/bin
仅在存在时由.profile
文件添加到路径
,因此,如果您还没有此目录并立即创建它,则需要启动新的登录shell或运行~/.profile
1才能使用它。)
-或-
您希望专门为此应用程序创建一个新目录(例如~/opt/rhasspy
),并将该目录附加到路径
变量
这可以通过将行export PATH=$PATH:~/opt/rhasspy
添加到~/.profile
文件中来实现。然后,启动一个新的登录shell或使用~/重新加载文件。配置文件
1以使更改生效
如果您可以永久保留此文件当前所在的目录,那么您也可以将该目录添加到路径
,而不是创建一个新目录
注意:路径始终包含shell将在其中查找可执行文件的目录路径。它不包含实际的文件路径
1:是的,从技术上讲,登录到新shell或手动运行该export
语句比使用~/更“干净”。配置文件
,因为后者将再次应用以前已经完成的操作,因此,例如,它可以在当前会话中多次使用路径
中的同一目录。但在大多数情况下,这很好。我想知道向path添加内容是否与将内容复制到path相同?请注意:您始终需要向path添加内容,否则可能会导致系统无法继续工作。您的PATH变量是什么?您所指的目录是什么?我来看看如何创建一个新的PATH变量。/usr/bin
通常在路径中,但它不是路径。你误解了我,相反。请尝试echo$PATH
了解我的意思/usr/bin
是通常在路径
变量中设置的目录之一。但是那个变量和一些目录不是一回事。@CherryDT是的,我现在明白你的意思了,但我想说的是,程序应该进入路径中的某个文件夹,而不是实际添加到路径中。是的,这是真的,但你的回答听起来就像路径中唯一的目录是/usr/bin
因为我不喜欢杂乱的主目录,所以我更喜欢的替代方法是扩展XDG指定的“$home/.local/share”,显然是使用“$home/.local”的附加子目录,包括“bin”、“lib”和“opt”。如果目录存在,Ubuntu中的“$HOME/.profile”登录脚本会将“$HOME/.local/bin”添加到路径中。
export PATH=$PATH:/home/this_user