Linux中这个$ PATH是什么,以及如何修改它

我在Linux上有这个$ PATH的几个问题。

我知道它告诉shell要search可执行文件的目录,所以:

  1. 这是什么意思一个环境variables?
  2. 如何改变它的path? 并build议改变它?
  3. 如果我改变它有什么后果?

为了让你的路径当前$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中:/ home / user中/箱

要更改$PATH您必须在/etc/profile为用户或全局$PATH设置编辑~/.profile (或~/.bash_profile )。

不准确的$PATH变量的后果之一是,shell将无法找到并执行没有完整的$PATH

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

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

 echo $PATH > someRandomFile.txt 

将其保存在一些RomomFile.txt中

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

 export PATH=someNewPath 

然而,这将完全取代$ PATH与someNewPath。 由于路径中的项目由“:”分隔,因此可以通过执行将项目添加到其中(最好不要删除,参见上文)

 export PATH=$PATH:newPath 

事实上,这是一个环境变量,意味着程序可以找到它的价值,也就是说,它是关于程序运行的环境的设置。其他环境变量包括当前目录和当前代理的地址。