云网牛站
所在位置:首页 > Linux教程 > 在Linux系统中将目录添加到$PATH的方法

在Linux系统中将目录添加到$PATH的方法

2019-07-30 09:44:25作者:孟坦稿源:云网牛站

本文介绍如何在Linux系统中将目录添加到$PATH,在命令行上输入命令时,基本上是告诉shell运行具有给定名称的可执行文件,在Linux中,这些可执行程序(如ls、find、file等)通常位于系统上的几个不同目录中,存储在这些目录中的任何具有可执行权限的文件都可以从任何位置运行,保存可执行程序的最常见目录是/bin、/sbin、/usr/sbin、/usr/local/bin和/usr/local/sbin。但是shell如何知道,搜索可执行程序的目录是什么,或者shell搜索整个文件系统?答案很简单,输入命令时,shell将搜索用户$PATH变量中指定的所有目录,以查找该名称的可执行文件。

在Linux系统中将目录添加到$PATH的方法

 

什么是Linux中的$PATH

$PATH环境变量是以冒号分隔的目录列表,用于告诉shell搜索可执行文件的目录。

要检查$PATH中的目录,可以使用printenv或echo命令,参考echo命令_Linux echo命令使用详解:输出指定的字符串或者变量

$ echo $PATH

输出看起来像这样:

在Linux系统中将目录添加到$PATH的方法

如果有两个可执行文件共享同一个名称,位于两个不同的目录中,shell将运行该文件,该文件位于$PATH中的第一个目录中。

 

将目录添加到$PATH

在某些情况下,你可能希望在$PATH变量中添加其他目录,例如,某些程序可能安装在不同的位置,或者你可能希望为你的个人文档设置专用目录,但能够在不指定可执行文件的绝对路径的情况下运行它们,为此,只需将目录添加到$PATH即可。

假设你在主目录中有一个名为bin的目录,你可以在其中保存shell脚本,要将目录添加到$PATH类型:

$ export PATH="$HOME/bin:$PATH"

export命令将修改后的变量导出到shell子进程环境。

你现在可以通过输入可执行脚本名称来运行脚本,而无需指定可执行完整路径。

但是,此更改仅是临时的,仅在当前shell会话中有效。

要使更改成为永久更改,你需要在shell配置文件中定义$PATH变量,在大多数Linux发行版中,当你启动新会话时,将从以下文件中读取环境变量:

1、全局shell特定配置文件,例如/etc/environment和/etc/profile,如果要将新目录添加到所有系统用户$PATH,请使用此文件。

2、每用户shell特定的配置文件,例如,如果你使用的是Bash,则可以在~/.bashrc文件中设置$PATH变量,如果使用的是Zsh,则文件名为~/.zshrc。

参考:什么是bashrc配置文件,如何对其进行编辑

在这个例子中,我们将在~/.bashrc文件中设置变量,使用文本编辑器打开文件,并在其末尾添加以下行:

$ nano ~/.bashrc

增加:export PATH="$HOME/bin:$PATH"

使用source命令保存文件并将新的$PATH加载到当前shell会话中:

$ source ~/.bashrc

要确认目录已成功添加,请输入以下命令打印$PATH的值:

$ echo $PATH

 

结论

向用户或全局$PATH变量添加新目录非常简单,这允许你执行存储在非标准位置的命令和脚本,而无需输入可执行文件的完整路径。

相同的说明适用于任何Linux发行版,包括Ubuntu、CentOS、RHEL、Debian和Linux Mint。

 

相关主题

第3章 管道符、重定向与环境变量

精选文章
热门文章