如何在 $PATH 中查找某一行的源?

如何在 $PATH 中查找某一行的源?

我的 $PATH 中有一行无效,我想删除它,但我不确定它来自哪里。它没有在.bashrc.profile或中设置/etc/environment

有什么办法可以找出它的来源吗?谢谢!

答案1

/etc/environment环境变量应在或中设置/etc/profile,或它们等效的每个用户文件~/.pam_environment或 中设置~/.profile。由于您已检查/etc/environment~/.profile,请检查/etc/profile(并注意它在 中获取文件/etc/profile.d/)。默认情况下没有~/.pam_environment

如果 bash 设置了错误的 PATH,您可以启动 bash 作为交互式登录 shell,并启用 xtrace,bash -xil以帮助查明发生错误的位置。

编辑:使用更多有用的输出和管道传输到更少的输出:

PS4='+ $BASH_SOURCE:$LINENO: ' bash -xilc '' 2>&1 | less

答案2

/etc/environment 应该设置 PATH 变量默认值。我建议查看一下,也许这个文件在您的系统上被修改了。一种解决方法是取消设置 PATH 变量,并在每次登录时“重新设置”它。

答案3

我对安装的臃肿的 ~/.bashrc 感到沮丧!我删除了它并制作了一个设置 PATH 和别名 ls 的最小版本,所有其他我不需要的东西。也许你想从头开始?

相关内容