【发布时间】:2013-05-15 08:34:44
【问题描述】:
我有几个关于 Linux 中的 $PATH 的问题。
我知道它告诉 shell 搜索可执行文件的目录,所以:
- 环境变量是什么意思?
- 如何改变它的路径?是否建议更改?
- 如果我更改它会有什么后果?
【问题讨论】:
我有几个关于 Linux 中的 $PATH 的问题。
我知道它告诉 shell 搜索可执行文件的目录,所以:
【问题讨论】:
要获取当前路径$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/bin
要更改您的$PATH,您必须为用户编辑~/.profile(或~/.bash_profile)或/etc/profile 中的全局$PATH 设置。
$PATH 变量不准确的后果之一是,如果没有完整的$PATH,shell 将无法找到并执行程序。
【讨论】:
首先,您对 $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。
【讨论】: