本人是做java的, java里面的东西很麻烦, 动不动就要设置环境变量, 所以想请教大家一下关于环境变量的设置问题:
我是linux菜鸟, 问题比较stupid, 大家见笑了:)
1.这两种方式是不是等效的?
JAVA_HOME=/usr/lib/jvm/java-6-sun
export $JAVA_HOME=/usr/lib/jvm/java-6-sun
知道有两个地方可以设置环境变量(如果不对请大家指正:))
1. etc/environemnt //
2. ~.bashrc //
2. 关于环境变量的scope问题:
如果我想把设置的环境变量给所有用户使用(就是windows下面的系统变量), 应该在哪设呢?
3. sudo的问题
我把环境变量设在~.bashrc里, 执行一段shell script, 例如说run.sh
我直接 ./run.sh, 没报错, 一切正常
我 sudo ./run.sh, 会说JAVA_HOME变量没设置, 请问这个环境变量和sudo有关系吗?
[问题]sudo和环境变量
-
- 帖子: 30
- 注册时间: 2005-12-09 16:22
[问题]sudo和环境变量
java程序员 linux菜鸟 C++初学者
http://ke-cai.net
http://ke-cai.net
- cnkilior
- 论坛版主
- 帖子: 4984
- 注册时间: 2007-08-05 17:40
1.这两种方式是不是等效的?
JAVA_HOME=/usr/lib/jvm/java-6-sun
export $JAVA_HOME=/usr/lib/jvm/java-6-sun
不等效。具体可以man export
知道有两个地方可以设置环境变量(如果不对请大家指正Smile)
1. etc/environemnt //(貌似不设置bash环境变量)
2. ~.bashrc //
还有:
3、/etc/bashrc(如果有)
4、~/.bash_profile(比~/.bashrc先处理,但一般是由他先调用.bashrc然后执行下面的语句)
5、/etc/profile
2. 关于环境变量的scope问题:
如果我想把设置的环境变量给所有用户使用(就是windows下面的系统变量), 应该在哪设呢?
/etc/bashrc
/etc/profile
3. sudo的问题
我把环境变量设在~.bashrc里, 执行一段shell script, 例如说run.sh
我直接 ./run.sh, 没报错, 一切正常
我 sudo ./run.sh, 会说JAVA_HOME变量没设置, 请问这个环境变量和sudo有关系吗?
不知道,貌似使用当前用户环境变量。
JAVA_HOME=/usr/lib/jvm/java-6-sun
export $JAVA_HOME=/usr/lib/jvm/java-6-sun
不等效。具体可以man export
知道有两个地方可以设置环境变量(如果不对请大家指正Smile)
1. etc/environemnt //(貌似不设置bash环境变量)
2. ~.bashrc //
还有:
3、/etc/bashrc(如果有)
4、~/.bash_profile(比~/.bashrc先处理,但一般是由他先调用.bashrc然后执行下面的语句)
5、/etc/profile
2. 关于环境变量的scope问题:
如果我想把设置的环境变量给所有用户使用(就是windows下面的系统变量), 应该在哪设呢?
/etc/bashrc
/etc/profile
3. sudo的问题
我把环境变量设在~.bashrc里, 执行一段shell script, 例如说run.sh
我直接 ./run.sh, 没报错, 一切正常
我 sudo ./run.sh, 会说JAVA_HOME变量没设置, 请问这个环境变量和sudo有关系吗?
不知道,貌似使用当前用户环境变量。
-
- 帖子: 52
- 注册时间: 2007-12-15 2:04
Re: [问题]sudo和环境变量
这个问题可以用3. sudo的问题
我把环境变量设在~.bashrc里, 执行一段shell script, 例如说run.sh
我直接 ./run.sh, 没报错, 一切正常
我 sudo ./run.sh, 会说JAVA_HOME变量没设置, 请问这个环境变量和sudo有关系吗?
sudo -H解决
查看一下man sudo
代码: 全选
-H The -H (HOME) option sets the HOME environment variable to
the homedir of the target user (root by default) as
specified in passwd(5). By default, sudo does not modify
HOME (see set_home and always_set_home in sudoers(5)).