environmentVariable - juedaiyuer/researchNote GitHub Wiki
个人环境变量设置
简单的说,计算机在执行命令的时候是在环境变量找对应命令的位置的
环境变量可以看成是计算机的全局变量
调用轮子,轮子所在的位置;调用命令,命令的所在
系统级
/etc/profile
在登录时,操作系统定制用户环境时使用的第一个文件,为系统的每个用户设置环境信息
用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell设置
这个文件一般就是调用/etc/bash.bashrc文件
/etc/bash.bashr 系统级的bashrc文件,为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
/etc/environment 在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量
profile与environment
environment是设置整个系统的环境,profile是设置所有用户的环境。前者与登录用户无关,后者有关
对于用户的shell初始化而言先执行profile,再读取文件environment
整个系统
environment-profile-.profile-.env
登录系统shell
profile-environment-.profile-.env
如果同一个变量在用户环境profile和系统环境environment,不同的值应该以用户环境为准
临时作用
shell时export
shell执行程序时,会提供一组环境变量,export可新增,修改或删除环境变量,供后续执行的程序使用,仅作用于此登录操作
用户级
~/.profile
在登录时用到的第三个文件
每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!
默认情况下,他设置一些环境变量,执行用户的.bashrc文件
~/.bashrc
该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取
不推荐放到这儿,因为每开一个shell,这个文件会读取一次,效率上讲不好。
~/.bash_profile
每个用户都可使用该文件输入专用于自己 使用的shell信息,当用户登录时,该文件仅仅执行一次!
默认情况下,他设置一些环境变量,执行用户的.bashrc文件
交互式login方式进入bash运行
bashrc是交互式non-login方式进入bash运行
~./bash_login 不推荐使用这个,这些不会影响图形界面。而且.bash_profile优先级比bash_login高。当它们存在时,登录shell启动时会读取它们
~/.bash_logout 当每次退出系统(退出bash shell)时,执行该文件
~/.pam_environment 用户级的环境变量设置文件
登录执行文件过程
登录Linux
/etc/profile
用户目录下
- ~/.bash_profile
- ~/.bash_login
/.profile(如果存在的话,会执行/.bashrc---/etc/bashrc)
退出shell
~/.bash_logout
设置环境变量的方法
/etc/profile 全局,随系统启动设置
/root/.profile /home/username/.profile 只对当前窗口有效
/root/.bashrc /home/username/.bashrc 随系统启动,设置用户的环境变量;平时设置这个就可以
控制台
$PATH="$PATH:/you_set_path"
修改profile文件
sudo vim /etc/profile
修改.bashrc文件
sudo vim /root/.bashrc
#在文件中加入下面的代码
export PATH="$PATH:/you_set_path"
自己环境变量配置
修改配置文件后,必须注销重新登录才能生效,使用source不用重新登录.
/etc/profile下的环境变量的个人使用
#java set
export JAVA_HOME=/usr/jdk1.8.0_65
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:/usr/jdk1.8.0_65/jre/lib
#java set2
export JAVA_HOME=/home/juedaiyuer/opensource/jdk1.8.0_144
export JRE_HOME=${JAVA_HOME}/jre
export PATH=${JAVA_HOME}/bin:$PATH
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
#hadoop set
export HADOOP_HOME=/usr/hadoop-2.7.1
export PATH=$HADOOP_HOME/bin:$PATH
#maven set
export M2_HOME=/home/juedaiyuer/apache-maven-3.3.9
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
#set tomcat
export TOMCAT_HOME=/home/juedaiyuer/apache-tomcat-9.0.0.M4
#mysql5.6 set
export MYSQL_HOME=/opt/mysql/server-5.6/bin
##source##