Linux PATH环境变量是什么,有什么用?

  • Post category:Linux

Linux PATH环境变量是一种用于存储可执行程序的目录列表的环境变量,它告诉Linux操作系统可以在哪些目录里找到可执行程序。当我们在终端上输入一个命令时,操作系统会在PATH环境变量所列出的目录中寻找与该命令对应的可执行程序,并执行该程序。如果PATH中没有找到对应的可执行程序,则会提示找不到该命令。

PATH环境变量的值是一个由多个目录路径组成的字符串,目录路径之间用冒号’:’分隔。我们可以通过echo命令来查看PATH环境变量的值,示例代码如下:

echo $PATH

输出结果可能类似于:

/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin

上述输出表示PATH环境变量的值包含了6个目录路径,它们分别是:

  • /usr/local/bin
  • /usr/bin
  • /bin
  • /usr/local/games
  • /usr/games
  • /snap/bin

我们可以在这些目录中查找可执行程序,例如在/usr/local/bin目录中查找可执行程序tree:

which tree

如果该可执行程序存在于/usr/local/bin目录中,则输出结果是:

/usr/local/bin/tree

如果该可执行程序不存在于PATH环境变量所列出的任何目录中,则输出结果是:

which: no tree in (...PATH环境变量的值...)

如果我们希望将一个自定义目录路径添加到PATH环境变量中,可以使用export命令。例如,在当前用户的home目录下创建一个名为test的子目录,并在该目录下创建一个名为mybin的子目录,在mybin目录下创建一个名为hello的Shell脚本文件,示例代码如下:

mkdir ~/test
mkdir ~/test/mybin
echo 'echo "Hello, world!"' > ~/test/mybin/hello

然后,将~/test/mybin目录路径添加到PATH环境变量中,示例代码如下:

export PATH=$PATH:~/test/mybin

这条命令表示将原来的PATH环境变量值加上:~/test/mybin,即将~/test/mybin目录加入到PATH环境变量中。然后,我们可以在终端中输入hello命令来运行~/test/mybin/hello脚本文件,如下所示:

hello

输出结果是:

Hello, world!

这样,我们就成功地将一个自定义目录路径添加到了PATH环境变量中,并可以在该路径下执行自己的可执行程序。