PATH 变量用于定义环境变量,即指定程序的可执行文件在系统上的目录。无需知道或输入文件的完整路径,只需在命令行中输入应用程序名称,然后系统将查找路径目录并运行第一个匹配的目录。
例如,在命令行中输入 firefox 将运行 /usr/bin/firefox 以在 Ubuntu、Fedora 和其他使用该浏览器作为默认浏览器的 Linux 中启动 Firefox Web 浏览器。
常见的 Linux 软件包(例如 .deb、.rpm)大多会自动将其可执行文件安装到 PATH 中。对于便携式 Linux 软件包和其他软件包,用户可以手动将包含可执行文件的应用程序文件夹添加到 PATH 中。
检查当前 PATH 变量
大多数 Linux 默认将 /usr/bin、/usr/local/bin、/usr/sbin、/usr/local/sbin、/usr/games、/usr/local/games 目录添加到 PATH 中。而第三方应用程序可能会添加更多目录。
要获取当前 PATH 变量,请打开终端 (Ctrl+Alt+T) 并运行命令:
echo $PATH
它将打印所有用冒号 (:) 分隔的 PATH 目录。
方法1:将文件夹/目录添加到 PATH 中以供临时使用。
出于开发或其他目的,您可以将仅适用于当前终端窗口或命令控制台的自定义文件夹或目录添加到 PATH 中。
要将自定义文件夹添加到 PATH,仅适用于当前终端,请使用以下任一命令:
export PATH="/PATH/TO/CUSTOM/FOLDER:$PATH"
或:
export PATH="$PATH:/PATH/TO/CUSTOM/FOLDER"
例如,下载了 SweetHome3D 压缩包并解压到用户主目录中的“MyApps”子文件夹中。要将其添加到 PATH,仅适用于当前终端,请使用命令:
export PATH="/home/ufans/MyApps/SweetHome3D-7.5:$PATH"
它将该文件夹添加到 PATH 的开头。
作为选择,以下命令会将其添加到末尾。
export PATH="$PATH:/home/ufans/MyApps/SweetHome3D-7.5
注意:运行命令时,它会从头到尾查找路径目录。将运行第一个匹配的目录。
方法 2:仅为当前用户添加 PATH 变量
仅对于当前用户,只需编辑以下文件之一即可添加 PATH 变量:
- .bash_profile – 通常在 Fedora、Manjaro Linux 中使用。
- .bash_login
- .profile – 通常在 Debian、Ubuntu Linux 中使用。
如果您的系统有多个,则编辑 .bash_profile(如果存在)或 .bash_login,并且仅在前两个不存在时使用 .profile。所有这三个通常都告诉运行 .bashrc,因此编辑 .bashrc 也有效。
在 Debian/Ubuntu 中,只需打开主文件夹,按 Ctrl+H 显示/隐藏隐藏文件,然后单击编辑 .profile 文件。
打开文件后,您将看到类似这样的内容:
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
它告诉将 bin 文件夹(如果用户主目录中存在)添加到 PATH。还有一个部分用于将 .local/bin 添加到 PATH(如果存在)。
您可以通过添加类似的行将自定义文件夹添加到用户的 PATH。例如,使用以下行将 SweetHome3D v7.5 添加到 MyApps 子文件夹下:
if [ -d "$HOME/MyApps/SweetHome3D-7.5" ] ; then
PATH="$HOME/MyApps/SweetHome3D-7.5:$PATH"
fi
或者,添加以下行,无论该文件夹是否存在,都将其添加到 PATH。
export PATH="$HOME/MyApps/SweetHome3D-7.5:$PATH"
要应用更改,您需要注销并重新登录。但是,它不适用于非登录 shell,例如 su user_name 命令。
方法3:为所有用户添加系统范围的 PATH 变量
基于 Debian 和 Ubuntu 的系统使用 /etc/environment 文件来指定原始系统范围的 PATH 变量。但是,不建议直接编辑该文件。
相反,/etc/profile 或 /etc/profile.d/ 目录下的 .sh 文件是添加系统范围 PATH 变量的正确位置。
例如,通过运行命令编辑 /etc/profile:
sudo gnome-text-editor /etc/profile
根据您的桌面环境替换 gnome-text-editor 或使用在大多数 Linux 中有效的 nano。打开文件后,在末尾添加新行:
export PATH="/usr/lib/myapps/bin:$PATH"
保存文件后(对于 nano,按 Ctrl+S 保存,然后按 Ctrl+X 退出),/usr/lib/myapps/bin 将在下次登录时添加到 PATH。
为了保持 /etc/profile 干净,最好在 /etc/profile.d 下创建自定义 .sh 文件。
例如,运行以下命令创建 custom_path_global.sh 文件并对其进行编辑:
sudo gnome-text-editor /etc/profile.d/custom_path_global.sh
然后,如果目录存在,添加以下行将执行相同的工作。并且,它将在下次登录时应用:
# 添加自定义 PATH 变量适用于所有用户
if [ -d "/usr/lib/myapps/bin" ] ;然后
PATH="/usr/lib/myapps/bin:$PATH"
fi
总结
将自定义文件夹或目录添加到 PATH 变量中?
简而言之,用户可以运行 export PATH="/PATH/TO/CUSTOM/FOLDER:$PATH" 将自定义文件夹添加到仅在当前终端中起作用的 PATH。
或者,编辑 Debian/Ubuntu 的 .profile 或 Fedora 的 .bash_profile,并添加类似的仅在当前用户下次登录时起作用的行。而编辑 /etc/profile 或在 /etc/profile.d 下创建 .sh 文件可以为所有用户完成系统范围内的工作。