什么是Linux中的$ PATH以及如何修改它

时间:2013-05-15 08:34:44

标签: linux path

我对Linux中的这个$ PATH有几个问题。

我知道它会告诉shell哪些目录要搜索可执行文件,所以:

  1. 环境变量是什么意思?
  2. 如何改变路径?是否建议改变它?
  3. 如果我改变它会产生什么后果?

3 个答案:

答案 0 :(得分:11)

要获取路径当前$PATH变量类型:

echo $PATH 

告诉你的shell在哪里查找二进制文件。

是的,您可以更改它 - 例如,使用您的自定义脚本添加到$PATH文件夹。

所以:如果您的脚本在/usr/local/myscripts中执行它们,则必须输入脚本的完整路径:/usr/local/myscripts/myscript.sh 更改$PATH变量后,您只需输入myscript.sh即可执行脚本。

以下是来自RHEL的$PATH示例:

  

的/ usr / Kerberos的/ bin中:在/ usr / local / bin中:/ bin中:在/ usr / bin中:/家庭/用户/ bin中

要更改$PATH,您必须为~/.profile中的用户或全局~/.bash_profile设置修改$PATH(或/etc/profile)。

具有不准确的$PATH变量的后果之一是,如果没有完整的$PATH,shell将无法查找和执行程序。

答案 1 :(得分:8)

首先,你在$ PATH的声明中是正确的。如果你以某种方式打破它(按照你的第三点),如果你想从终端运行/ usr / bin中的程序,你将不得不手动输入/ usr / bin / xyz。根据各个程序的工作方式,这可能会破坏一些调用其他程序的程序,因为它们只能运行ls或其他程序。

所以如果你要玩$ PATH,我建议先把它保存到某个地方。使用命令行指令

echo $PATH > someRandomFile.txt

将其保存在someRandomFile.txt

您可以使用export命令更改$ PATH。所以

export PATH=someNewPath

但是,这将完全用someNewPath替换$ PATH。由于路径中的项目由“:”分隔,因此您可以通过执行

向其中添加项目(最好不要删除,参见上文)
export PATH=$PATH:newPath

它是一个环境变量的事实意味着程序可以找到它的值,即它是关于程序运行的环境设置的东西。其他环境变量包括当前目录和地址等目前的代理人。

答案 2 :(得分:0)

这很简单,我确实喜欢这种方式。

打开linux bash shell并打印环境变量:

printenv

我将“ PATH”变量复制到文本编辑器并根据需要进行编辑。然后像这样更新PATH

export PATH= /variable dir list/

有效。

或者如果要添加单个变量,请使用此命令。

export PATH = $PATH:/variable_dir_path/

这将使用您的新目录路径扩展PATH。