Ubuntu 中如何配置环境变量 PATH?

2014-04-19 23:07:21 +08:00
 PurpleSun
我是直接修改/etc/profile文件的,修改后重启,
使用普通用户执行`echo $PATH`的输出为:
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/node/bin:/usr/local/node/bin:/usr/local/go/bin:JAVA_HOME/bin:/opt/jdk1.7.0_15/jre/bin
可以看到PATH生效了(node、go和java的);
但是使用超级用户执行`echo $PATH`的输出却为:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
PATH并没有生效。
对/etc/profile的修改本应该对所有用户都是有效的,可为什么对root用户是无效的呢?
2848 次点击
所在节点    问与答
3 条回复
pobing
2014-04-20 09:13:00 +08:00
在 .bashrc,或 .bash_profile 修改试试
Tinet
2014-04-20 11:38:38 +08:00
应该是ROOT目录下有.bashrc/.bash_profile文件,于是系统就不会用/etc/profile了
PurpleSun
2014-04-20 13:06:54 +08:00
感谢@pobing和@Tinet的回答~
修改.bashrc确实可行,切换为root用户是可以看到env中PATH已被设置。
但是使用这个方法设置,普通用户执行`sudo env`检查,PATH是不能生效的,
这意味着`sudo npm -v`会返回错误“sudo: npm: command not found”,
而我并不想每次执行npm时都切换为root用户

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/109247

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX