在 Linux(也是 UNIX)中,$PATH是环境变量,用于告诉 shell 在哪里查找可执行文件。

$PATH变量为 Linux 系统提供了极大的灵活性和安全性,可以肯定地说它是最重要的环境变量之一。

位于 $PATH 目录中的程序/脚本可以直接在 shell 中执行,而无需指定它们的完整路径。在本教程中,您将学习如何全局和本地设置$PATH变量。

首先,让我们看看您当前$PATH的价值。打开终端并发出以下命令:

$ echo $PATH

结果应该是这样的:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

结果显示以冒号分隔的目录列表。您可以通过编辑用户的 shell 配置文件轻松添加更多目录。

在不同的 shell 中,这可以是:

  1. Bash shell -> ~/.bash_profile、~/.bashrc 或配置文件
  2. Korn Shell -> ~/.kshrc 或 .profile
  3. Z shell -> ~/.zshrc 或 .zprofile

请注意,根据您登录相关系统的方式,可能会读取不同的文件。以下是 bash 手册的内容,请记住,其他 shell 的文件是相似的:

/bin/bash
The bash executable
/etc/profile
The systemwide initialization file, executed for login shells
~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
~/.bash_logout
The individual login shell cleanup file, executed when a login shell exits
~/.inputrc
Individual readline initialization file|

考虑到上述情况,您可以通过将以下行添加到您将使用的相应文件中来向 $PATH 变量添加更多目录:

$ export PATH=$PATH:/path/to/newdir

当然,在上面的例子中,你应该用你希望设置的确切路径来更改“/path/to/newdir”。修改 .*rc 或 .*_profile 文件后,您需要使用“source”命令再次调用它。

例如,在 bash 中,您可以这样做:

$ source ~/.bashrc

下面,您可以看到本地计算机上的我的$PATH环境示例:

marin@[TecMint]:[/home/marin] $ echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/marin/bin

这实际上是一个很好的做法,为用户创建一个本地的“bin”文件夹,他们可以在其中放置可执行文件。每个用户都有其单独的文件夹来存储其内容。这也是确保系统安全的好措施。