我对 Linux 中的这个 $PATH 有几个问题。
我知道它告诉 shell 搜索可执行文件的目录,所以:
- 环境变量是什么意思?
- 如何改变它的路径?是否建议更改它?
- 如果我改变它会有什么后果?
要获取路径当前$PATH
变量类型:
echo $PATH
它告诉你的 shell 在哪里寻找二进制文件。
是的,您可以更改它 - 例如$PATH
使用您的自定义脚本添加到文件夹中。
所以:如果您的脚本/usr/local/myscripts
要执行它们,您将必须输入脚本的完整路径:/usr/local/myscripts/myscript.sh
更改$PATH
变量后,您只需输入myscript.sh
即可执行脚本。
以下是$PATH
来自 RHEL 的示例:
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/user/bin
要更改您的$PATH
,您必须编辑~/.profile
(或~/.bash_profile
)中的用户或全局$PATH
设置/etc/profile
。
$PATH
变量不准确的后果之一是,如果没有完整的$PATH
.
首先,您对 $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
它是一个环境变量这一事实意味着程序可以找到它的值,即它是关于程序运行环境的设置。其他环境变量包括当前目录和当前代理的地址等.
这很简单,我喜欢这种方式。
打开 linux bash shell 并打印环境变量:
printenv
我将“ PATH
”变量复制到文本编辑器并根据需要进行编辑。然后PATH
像这样更新
export PATH= /variable dir list/
有用。
或者,如果您想添加单个变量,请使用此命令。
export PATH = $PATH:/variable_dir_path/
这将使用您的新目录路径扩展 PATH。