一、什么是环境变量?
bash shell用一个称作环境变量的特性来存储有关shell会话和工作环境的信息。这也是他们为什么被称作环境变量的原因。
二、环境变量分为局部和全局
1、全局变量:
不仅对shell会话可见,对所有shell创建的子进程也可见。
2、局部变量:
只对创建它们的shell可见。
三、设置环境变量
1、设置局部环境变量:
a)、字符串要用单引号扩起来;
b)、推荐使用小写;
c)、当回到父shell时,子shell设置的不再存在;
2、设置全局环境变量:
创建全局环境变量的方法是,先创建一个局部环境变量,然后使用export再把它导出到全局环境中。
四、删除环境变量
可以使用unset命令来删除环境变量。
五、设置PATH环境变量
PATH环境变量是LINUX系统上造成最多问题的变量。它定义了命令行输入命令的搜索路径。
1、在登录Linux系统启动一个bash shell时,默认情况下bash在几个文件中查找命令。这些文件称作启动文件。
bash检查的启动文件取决于你启动shell的方式。
a)、登录时当做默认登录shell;
登录shell会从4个不同的启动文件里读取命令。如下:
、/etc/profile;
、$HOME/.bash_profile;
、$HOME/.bash_login;
、$HOME/.profile
/etc/profile文件是系统上默认的bash shell的主启动文件。系统上的每个用户登录时都会执行这个启动文件。
另外3个启动文件是用户专有的,所以可以根据每个用户的具体需求定制。
profile文件还有一个复杂的特性。它有个for语句,会逐一访问位于/etc/profile.d目录的每个文件。
它为Linux系统提供了一个集中存放用户登录时要执行的应用专属的启动文件的地方。
剩下的3个启动文件都起着同一个作用:提供一个用户专属的启动文件来定义用户专有的环境变量。
大多数Linux发行版只用这3个启动文件中的一个。
.bash_profile启动文件会先去检查HOME目录中是不是还有另一个叫做.bashrc的启动文件。如果有的话,启动文件会先去
执行它里面的命令。执行完后,启动文件将一个目录加到了PATH环境变量,在HOME目录下提供了一个放置可执行文件的通用位置。
b)、作为非登录shell的交互式shell;
如果bash是作为交互式shell启动的,它不会去访问/etc/profile文件,而会去用户的HOME目录检查.bashrc是否存在。
.bashrc文件有两个作用:
、查看/etc目录下的共用bashrc文件
、为用户提供了一个定制自己的命令别名和私有脚本函数的地方。
交互式shell的启动文件只会在每次有新的交互式shell启动时才运行,因此任何字shell都会自动执行这个交互式shell的启动。
c)、作为运行脚本的非交互shell;
系统执行shell脚本时用的就是这种shell。bash提供了BASH_ENV环境变量。当shell启动一个非交互式shell进程时,它会检查
这个环境变量来查看要执行的启动文件。
如果有指定的,shell会执行文件里的命令。