在 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 中,这可以是:
- Bash shell -> ~/.bash_profile、~/.bashrc 或配置文件
- Korn Shell -> ~/.kshrc 或 .profile
- 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”文件夹,他们可以在其中放置可执行文件。每个用户都有其单独的文件夹来存储其内容。这也是确保系统安全的好措施。