Jac*_*ijm 26
在终端中运行:
echo $PATH
Run Code Online (Sandbox Code Playgroud)
或者
printf "%s\n" "$PATH"
Run Code Online (Sandbox Code Playgroud)
你看到的是一个目录列表,看起来像:
/home/jacob/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Run Code Online (Sandbox Code Playgroud)
如果将可执行文件放在这些目录之一中,则无需设置可执行文件/脚本的路径,但可以通过其名称作为命令运行它。
按照约定,可执行文件$PATH不应该有语言扩展(尽管它们可以工作)
您可以(永久)$PATH通过将以下行添加到您的~/.profile文件中来添加目录(默认情况下不可见,在文件管理器中按Ctrl+H使其可见):
export PATH=$PATH:/path/to/dir
Run Code Online (Sandbox Code Playgroud)
(例如$PATH)可以在这里找到(感谢@Letizia 的建议)
ast*_*b0t 11
当用户键入要运行的命令时,系统会PATH按照指定的顺序在 指定的目录中查找它。
您可以通过echo $PATH在终端中键入来查看指定的目录。
假设有一个可执行文件foobar01.sh出现在/home/user/foo1/foo2/foobar01.sh要执行定期。输入整个“路径”会很耗时。所以我们将目录加入到$PATH变量中,我们可以foobar.sh直接执行,甚至不需要指定路径。
您可以$PATH通过键入以下命令将其添加到:
export PATH=$PATH:/home/user/foo1/foo2
Run Code Online (Sandbox Code Playgroud)
我假设您有 Windows 背景(如果事实并非如此,我们深表歉意)。通俗地说,路径(或搜索路径)是一个目录列表,您在命令行中键入的任何内容都将在这些目录中搜索。如果您输入像 ls 这样的内置命令,它将查找指定的目录列表。您可以通过输入 echo $PATH 来查找您的路径。Windows 和 *nix 之间的一个区别是:默认情况下,Windows 总是在当前目录中查找可执行文件。例如,如果 c:\myscripts 中有一个名为 uptime.bat 的文件,并且您 cd c:\myscripts 并输入 uptime,它将运行。但是,在 *nix 中,将查询路径并找到可执行文件(如果可用)。
如果将脚本保存在名为 /home/teresa/scripts 的目录中,则要执行这些脚本,您必须指定该目录的完整路径。示例:/hone/teresa/checkHost。一种变体是 cd /home/teresa,然后键入 ./checkHost (注意 ./ 意味着您明确要求文件从当前目录运行。
为了避免这种情况,您只需输入
导出 PATH=$PATH:/home/teresa/scripts
这意味着,除了现在已经存在的路径之外,还要在 /hone/teresa/scripts 中搜索。然而,这样做的问题是,一旦你注销,这个设置就会消失。因此,您应该编辑隐藏文件 ~/.bashrc,找到其中的 PATH 行,并相应地附加它。我假设你使用 bash。对于其他 shell,语法和文件有所不同。
作为一个新用户,拥有 . 在搜索路径中,这基本上意味着也在当前目录中搜索。然而,由于其他地方讨论的原因,这不被认为是一个好的做法。
华泰