Linux 路径环境变量

Niraj Menon 2023年1月30日
  1. Linux 中 PATH 的使用
  2. 在 Linux 中添加到 PATH 环境的方法
Linux 路径环境变量

在 Linux 中,PATH 环境变量决定程序的位置。它是放置二进制文件或符号链接的目录的文件路径列表。当输入程序调用时,当前 shell 将在 PATH 中查找相应的二进制文件。

本文将讨论如何编辑 PATH 环境变量以查找不在文件系统上特定位置的程序,假设使用 Bash shell 命令行。

Linux 中 PATH 的使用

默认情况下,你使用的 shell 将查看 PATH 环境变量以在 PATH 指定的目录中定位命令。

例如,如果你输入 cat,一个常见的 Linux 实用程序,shell 通常会在目录中查找,例如 /usr/bin/usr/local/bin/usr/sbin,寻找名为 cat 的程序,并执行它。

在 Linux 中添加到 PATH 环境的方法

有时,你可能将程序安装在系统上通常不在 PATH 上的位置,例如你的主文件夹,在这种情况下你没有根访问权限来安装到/usr/ 等位置斌。你可以在 PATH 环境变量前面添加一个路径来执行此操作。

假设你想将路径 /home/$USER/local/bin - 其中 $USER 是一个包含你的用户名的 shell 变量,并且每次启动新的 shell 会话时都预定义 - 到环境的 PATH

在 Bash 中,你可以使用以下方法执行此操作:

export PATH=/home/$USER/local/bin:$PATH

export 命令确保更改后的 PATH 将导出到任何子 shell 或在当前 shell 中调用的其他 child 命令。

使用 export 通常是最安全的选择,除非你只需要更改当前 shell 的 PATH 但调用使用旧 PATH 值的子进程。请记住,你只能添加包含命令的目录,而不是命令本身的实际路径。

你也可以选择设置 PATH 而不先导出,运行命令,然后在命令完成后导出新的 PATH,如图:

PATH=/home/$USER/local/bin:$PATH
command-that-uses-old-PATH
export PATH

如果在脚本中运行时需要使用诸如 $USER 之类的变量,你应该使用一个字符串来分配给 PATH,如下所示:

export PATH="/home/$USER/local/bin:$PATH"

在某些情况下,在命令位置的优先级无关紧要的情况下,例如在添加新命令时,你可能希望将新路径附加到 PATH 而不是预先添加它。

你可以按如下方式附加到 PATH

export PATH=$PATH:/path/to/new/program