合 Linux环境变量配置文件介绍
Tags: LinuxOS环境变量/etc/profile
Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。用户可以对自己的环境变量进行修改以达到对环境的要求。
设置环境变量的方法
对所有用户生效的永久性变量
这类变量对系统内的所有用户都生效,所有用户都可以使用这类变量。作用范围是整个系统。
此文件只在root下才能修改。
1 2 | # vi /etc/profile export CLASSPATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib |
添加完成后新的环境变量不会立即生效,立即生效需要运行 source /etc/profile
,否则只能在下次重进此用户时才能生效。
当用户登录(login)时,文件会被执行,并从/etc/profile.d
目录的配置文件中查找shell设置。
对单一用户生效的永久性变量
在用户目录下的.bash_profile 文件中添加变量,该文件是隐藏文件,可使用ll -a查看:
1 2 3 4 5 6 7 | $ whoami rethink $ vi /home/rethink/.bash_profile export CLASSPATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib $ source /home/rethink/.bash_profile |
在上图中用红框框住了两个文件:.bashrc
和.bash_profile
,原则上讲设置此类环境变量时在这两个文件任意一个里面添加都是可以的,这两个文件的区别为:.bash_profile是交互式login方式进入bash shell运行,.bashrc是交互式non-login方式进入bash shell运行。
可以理解为.bash_profile文件只会在用户登录的时候读取一次
,而.bashrc在每次打开终端进行一次新的会话时都会读取。
通常二者设置大致相同,所以通常.bash_profile
会调用.bashrc
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [lhr@lhr ~]$ cat .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin export PATH [lhr@lhr ~]$ |
临时有效的环境变量(只针对当前shell有效)
此类环境变量只对当前的shell有效。当我们退出登录或者关闭终端再重新打开时,这个环境变量就会消失。是临时的。
设置方法:命令行下直接使用[export 变量名=变量值] 定义变量。
1 2 3 | $ export NAME="rethink" $ echo $NAME rethink |
设置环境变量常用命令
- echo 用于打印显示环境变量,如:echo $NAME;
- export 用于设置新的环境变量,如:export NAME='rethink';
更新环境变量 更新环境变量直接重新赋值即可:NAME='test' (注意:变量名前不需要加$);
- env 显示当前用户的变量;
- set 显示当前shell变量,shell变量包含用户变量;
- unset 删除一个环境变量,如:unset NAME;
- readonly 设置环境变量只读,如:readonly NAME ,只读变量unset无效。
bashrc
bashrc 文件用于配置函数或别名。bashrc 文件有两种级别:
- 系统级
- 用户级
系统级
系统级的位于/etc/bashrc
,对所有用户生效。