/etc/profile,/etc/bashrc 是系统全局环境变量设定
~/.profile,~/.bashrc用户家目录下的私有环境变量设定
当登入系统时候得到一个shell进程时,其读取环境设定档有三步
1首先读入的是全局环境变量设定档/etc/profile,而后根据其内容读取额外的设定的文档,如
/etc/profile.d和/etc/inputrc
2而后根据不一样使用者账号,去其家目录读取~/.bash_profile,若是这读取不了就读取~/.bash_login,这个也读取不了才会读取
~/.profile,这三个文档设定基本上是同样的,读取有优先关系
3而后在根据用户账号读取~/.bashrc
至于~/.profile与~/.bashrc的不区别
都具备个性化定制功能
~/.profile能够设定本用户专有的路径,环境变量,等,它只能登入的时候执行一次
~/.bashrc也是某用户专有设定文档,能够设定路径,命令别名,每次shell script的执行都会使用它一次 java
详细介绍:linux
linux中有两个重要的文件:/etc/profile和$HOME/.bash_profile:
每当系统登录时都要读取这两个文件,用来初始化系统所用到的变量,其中/etc/profile是超级用户所用(对全部用户起做用),$HOME/.bash_profile(隐藏文件)是每一个用户本身独立的,咱们能够修改该文件来设置一些变量
/etc/profile
每一个用户登陆时都会运行的环境变量设置,当用户第一次登陆时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置,例如JDK配置
export JAVA_HOME=/usr/local/java/jdk1.7.0_67
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
$HOME/.bash_profile
每一个用户home目录下都有这样的一个隐藏文件.bash_profile,这个用来初始化系统变量,俗称环境变量,只不过只是针对本身来用,
好比安装postgresql的时候,新建一个postgres用户,在这个用户下.bash_profile,配置以下:
# postgres
PGDATA=/usr/local/pgsql/data
PATH=/usr/local/pgsql/bin:$PATH
export PGDATA PATH
表示:能够直接执行/usr/local/pgsql/bin下的命令,不用加命令sql
修改这两个文件以后,还须要使其生效:
source /etc/profile 和 source .bash_profile 或者. .bash_profileshell