Linux的环境变量不生效

Posted 林海峰4573

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux的环境变量不生效相关的知识,希望对你有一定的参考价值。

一、定时任务无法加载系统的环境变量

  系统环境变量生效顺序:​​http://blog.51cto.com/zpf666/2334770​

1.首先读入的是全局环境变量设定目录/etc/profile,然后根据其内容读取额外的设定的文档,如 /etc/profile.d和/etc/inputrc

2.然后去用户家目录下,读取~/.bash_profile,否则读取~/.bash_login,再否则~/.profile,这三个文档设定基本上是一样的,存在读取优先关系

3.然后再去用户家目录下,读取~/.bashrc

  1、linux配置定时任务的用户环境变量

  在Linux系统中,执行定时任务时,默认加载的是用户环境变量 ​​~/.bashrc​​ ,不会加载系统变量,而要使用系统变量,可以用如下方式:

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

*/1 * * * * root /root/xx.sh # 使用用户环境变量
*/1 * * * * root source ~/.bashrc && /root/xx.sh # 使用用户环境变量

*/1 * * * * root source /etc/profile && /root/xx.sh # 使用系统环境变量

  在以上的配置中,定时任务只是默认加载当前用户的环境变量,即 所有的定时任务,默认使用 source ~/.bashrc 来加载执行后续命令的。

  如果要加载 系统环境变量,则需指定加载系统变量文件,即 source /etc/profile 这段命令。 && 符号意思就是执行多个命令,这里是先加载系统环境变量,然后再执行 /root/xx.sh的命令。 


二、Linux系统环境变量

  1、现象:每次登陆系统时,都需要source /etc/profile  

  Linux每次进入都需要 source /etc/profile才能使用java命令,需要配置永久环境变量,修改etc目录下的bashrc文件,在最前面添加

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_161 
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar





以上是关于Linux的环境变量不生效的主要内容,如果未能解决你的问题,请参考以下文章

idea 环境变量修改后不生效处理

Linux下如何使环境变量文件生效

linux下使环境变量立即生效的几种方法

Linux下如何使环境变量文件生效?

linux 配置环境变量不生效

Linux的环境变量不生效