碰巧我的set
命令输出中有一些不需要的环境变量,而且我无法摆脱这些:
$ set
ALL_PROXY=socks://127.0.0.1:10010/
.... (lots of environment variables)
all_proxy=socks://127.0.0.1:10010/
https_proxy=https://127.0.0.1:11000/
no_proxy=localhost,127.0.0.0/8,10.0.0.0/8,192.168.0.0/16,172.16.0.0/12
socks_proxy=socks://127.0.0.1:10010/
.... (some functions I have no idea where they come from)
.... (some functions from my .bashrc)
我怎样才能找到这些定义的出处?
并且这些变量也是为root
用户设置的。
我试图取消设置这些值并调用 bash(嵌套),但它们只是不断返回。
我已经检查过它们不在DO 检查中列出的常见地方:
https://unix.stackexchange.com/questions/813/how-to-determine-where-an-environment-variable-came-from
答案1
请检查以下列出的常见地点:https://unix.stackexchange.com/questions/813/how-to-determine-where-an-environment-variable-came-from
最后我发现我已经配置了这些变量,/etc/environment
但不知道为什么/何时程序具有更新文件的 root 权限。(我总是sudo
谨慎使用。)
答案2
要了解 Bash 启动时执行的操作:
$ man bash
然后按/
并输入startup
,然后按ENTER
点击n
查找下一个实例startup
(或p
返回到上一个实例)。
h
将告诉您有关更多键的信息。
在其中的内容中,你会发现这样的措辞:例如,它/etc/profile
会根据它的启动方式进行调查。
祝您狩猎愉快!