PATH
有些东西向我的环境变量添加了不需要的路径。
我怎样才能找到罪魁祸首?
我已经看过:
- ~/.bashrc
- 〜/ .bash_profile
- /etc/bashrc
- /etc/配置文件
- /etc/环境
答案1
这可能有点过头了,您(当然)应该尝试通过跟踪运行脚本的顺序来找到它,但有时该树变得难以解析。因此可以简单地 grep 查找它:
grep --regexp='PATH=.*/path/that/you/try/to/find' --binary-files=without-match -r /
请注意,这是一个非常漫长的过程,您的硬盘将在整个过程中变得疯狂(您基本上正在阅读您拥有的每个文本文件)。
答案2
尝试:
grep -rF --binary-files=without-match ':/the/undesired/path' / 2> /dev/null
如果/the/undesired/path
是$UNKNOWN_VARIABLE_NAME_FOR_THE_UNDESIRED_PATH
或 ,这显然行不通。
请注意,/home/user/undesired/path
通常会被指定为$HOME/undesired/path
.
运行相同的操作而不:
获取变量赋值:
grep -rF --binary-files=without-match '/the/undesired/path' / 2> /dev/null
如果这不起作用,请查找所有PATH
作业并手动过滤:
grep -rwF --binary-files=without-match 'PATH=' / 2> /dev/null
答案3
find
使用和单独查找和搜索文件xargs
,请参阅man
每个文件的页面。
sudo find / -type f -print0 | \
xargs -0 --no-run-if-empty \
grep -l 'PATH'
列出所有提及 PATH 的文件名。附加
| xargs less
查看文件。
我们无法搜索,因为据我们所知,/some/deep/path/bin
它可以表示为。$SDP/bin