如何将目录添加到Linux中的$path变量

时间:2020-03-05 15:25:52  来源:igfitidea点击:

环境变量控制shell的行为。
环境变量是设置shell工作环境的变量。
一些环境变量是用户,主页,shell,pwd,shell,ps1,ps2等。

主变量包含用户的主目录路径。
类似地,其他变量包含shell操作所需的其他值。
本教程讨论了一个名为路径的重要shell环境变量以及如何将值添加到此变量。

在本教程中,将介绍如何在Linux中将目录添加到路径变量。
$path变量显示Linux命令或者可执行文件所在的所有目录的列表。

显示变量值

shell通过"$"符号解释变量的值。
要显示变量的值,请使用"$"符号在变量之前。
"echo"命令用于显示变量的值。
让我们显示变量首页的值:

$echo $HOME
/home/raghu

什么是路径变量

UNIX/Linux中的命令是二进制可执行文件。
在shell提示符处输入命令时,执行具有该名称的二进制文件。
因此,当在提示符处输入命令时,shell在某些目录中搜索该二进制文件。
这些目录列在路径变量中。
如果没有路径变量,则无法执行命令。
现在让我们显示PATH变量的当前值。

$echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

此变量中的目录由以下方式分开:(冒号)。
目前,shell搜索以下导演的二进制可执行文件:

/usr/local/sbin

/usr/local/bin

/usr/sbin

/usr/bin

/sbin and

/bin

搜索路径的顺序也很重要。
假设,我们在命令行中输入ls命令。

首先,shell搜索/usr/local/sbin目录。
如果它没有在此目录中找到具有该名称的可执行文件,那么它将在/usr/local/bin目录中查看,然后/usr/sbin,然后是/usr/bin等。
如果路径变量中指定的目录都没有包含该文件,则终端上显示"未找到命令"错误。

哪个命令用于查找包含特定命令的目录。
此命令还使用路径变量来搜索命令位置。
例如,

$which ls
/bin/ls

这意味着当我们在提示处键入ls并执行ls命令时,执行"/bin/ls"文件。
换句话说,LS命令的位置是"/bin/ls"。
我们还可以找到其他命令的路径,其中包含"哪个"命令。

将目录添加到路径

现在假设我们在位于主目录中的bin目录中创建shell脚本,例如:在"~/bin"目录(~代表主目录);现在,我们也希望在路径变量中添加此目录,以便每次运行脚本时都不必指定脚本的路径。

变量的值与语法"变量=值"更改。
但其中我们希望将目录添加到路径变量。
我们不能只写"Path =~/bin",因为它将覆盖所有先前的值。
我们希望保留变量中包含的现有值。
因此,我们使用变量的值,例如:$path,用于分配新值。
如果听起来很困惑,请不要担心,它将清除以下命令:

$PATH=$PATH:~/bin
$echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/bin

"/root/bin"目录(/root是root用户的主目录)已添加到路径变量中。
现在,我们可以将脚本作为命令执行,而无需指定脚本的完整路径。