我如何才能找出环境变量(例如 PATH)的设置位置?

我如何才能找出环境变量(例如 PATH)的设置位置?

我有一个带有 Linux 中 bash shell 的 xterm。当我 时echo $PATH,它显示一个目录,我想知道是谁把这个目录放在 中PATH。我该如何查找?

谢谢!

答案1

假设您的登录 shell 是 bash,您可以开始查看以下文件:/etc/profile~/.bashrc~/.bash_profile。如果您从另一个 shell 调用 bash,那么您可能需要检查另一个 shell 设置了哪些变量。

答案2

您可能无法发现是谁,但您可以找出哪个文件正在设置该变量。查看 Bash 文档以查找启动文件。Bash 在启动时处理多个文件以设置 $PATH 和其他环境变量。

http://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html#Bash-Startup-Files

答案3

该答案假设您的登录shell是bash。


我使用一个别名来模拟登录 shell 的打开并将详细日志输出到 stdout。

根据您配置点文件的方式,您可能需要选择除之外的其他内容~/.bashrc,但是,就我的目的而言,这是可行的,因为~/.bashrc这是我获取所有各种配置文件和导出文件的地方。

alias simlogin='PS4='\''+~/.bashrc> '\'' BASH_XTRACEFD=7 bash -xl 7>&2'

笔记运行此命令后,当前 shell 将在每个后续提示和命令上输出跟踪,因此您可能希望在找到所需内容后退出 shell。

这里有一个很好的答案通过将调试日志输出重定向到文件(或其他位置)可以帮助您改善调试体验。

答案4

您还可以查看文件 /etc/environment

相关内容