更改环境变量

更改环境变量

我刚刚将/etc/environment文件更改为:

M2_HOME=/usr/local/apache-maven/apache-maven-3.1.1
M2=$M2_HOME/bin
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
PATH=$M2:$PATH
JAVA_HOME=/usr/local/jdk1.6.0_45
PATH=$JAVA_HOME:$PATH

(尝试做类似的事情

但是,当我尝试通过键入例如来检查环境变量时,echo "$M2"结果是所有变量都是空行,并且 $PATH 与编辑文件之前相同。为什么我的更改不起作用?我尝试关闭并打开 shell,但什么也没发生。

答案1

/etc/environment需要适当的重新登录才能生效,因为它在登录时由 PAM 处理。此外,正如 @przemo 指出的那样,它不是作为脚本运行或获取的,因此变量不会展开。将这些变量放在文件.sh/etc/profile.d/

sudo tee -a /etc/profile.d/my_vars.sh <<"EOF"
export M2_HOME=/usr/local/apache-maven/apache-maven-3.1.1
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
export JAVA_HOME=/usr/local/jdk1.6.0_45
export PATH=$JAVA_HOME:$PATH
EOF

这还需要重新登录才能完全生效,但您可以通过运行登录 shell 立即进行测试:

$ bash -l
$ echo $PATH
/usr/local/jdk1.6.0_45:/usr/local/apache-maven/apache-maven-3.1.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

正如 Gunnar 所指出的,对 的默认赋值PATH应保留在 中/etc/environment,而不应添加到上述脚本中。请参阅此社区维基页面了解更多信息。

答案2

/etc/environment不是脚本文件,不能使用变量,为了进一步阅读,我建议https://help.ubuntu.com/community/EnvironmentVariables

相关内容