V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
PurpleSun
V2EX  ›  问与答

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

  •  
  •   PurpleSun · 2014-04-19 23:07:21 +08:00 · 2955 次点击
    这是一个创建于 3880 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我是直接修改/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用户是无效的呢?
    3 条回复    1970-01-01 08:00:00 +08:00
    pobing
        1
    pobing  
       2014-04-20 09:13:00 +08:00
    在 .bashrc,或 .bash_profile 修改试试
    Tinet
        2
    Tinet  
       2014-04-20 11:38:38 +08:00
    应该是ROOT目录下有.bashrc/.bash_profile文件,于是系统就不会用/etc/profile了
    PurpleSun
        3
    PurpleSun  
    OP
       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用户
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5816 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 03:16 · PVG 11:16 · LAX 19:16 · JFK 22:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.