我对Linux中的这个$ PATH有几个问题。
我知道它会告诉shell哪些目录要搜索可执行文件,所以:
答案 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。