原因
- sudo命令会重置环境变量,查看文件
/etc/sudoers
,可以看到这样的配置
Defaults env_reset
解决方法
-
第一种,也是最简单的,使用
sudo -E
来代替sudo
即可保留当前用户的环境变量,但缺点也很明显,每次都要加 -
第二种方式:修改
/etc/sudoers
文件,将Defaults env_reset
改为Defaults !env_reset
,这样以后使用sudo就再也不会重置环境变量了需要注意的是`/etc/sudoers`是只读文件,vim不能更改,要使用`visudo`命令(不用加文件名)来更改内容
-
不过大部分环境变量我们一般都用不着,这种情况就可以在配置中添加env_keep,来使指定的几个环境变量保持不变
- 具体的做法是在
/etc/sudoers
中添加语句Defaults env_keep += "env1 env2"
,这样环境变量env1 和env2就可以在sudo执行时保留原来的值 - 不过既然
/etc/sudoers
是个只读文件,就不是用来让我们改来改去的;还除了它,我们还可以在目录/etc/sudoers.d/
下随便创建文件,写入Defaults env_keep += "env1 env2"
,效果和在/etc/sudoers
中是一样的,也更加方便删除和修改
- 具体的做法是在
-
有关sudo的更多内容可以查看这里