环境变量
bash shell用一个叫做环境变量的特性来存储有关shell会话和工作环境的信息。即允许在内存中存储数据,使得在程序或shell中运行的脚本能够访问到它们。
Linux中环境变量分为三种:
- 全局环境变量:对于shell会话和所有生成的子shell都是可见的
- 局部环境变量:只对创建它的shell可见,即当前创建的用户可见
- 用户定义变量:只对当前会话生效
创建全局环境变量
在/etc/profile文件中创建全局环境变量
/etc/profile文件:
**当一个用户登录Linux系统或使用su -命令切换到另一个用户时,也就是Login shell 启动时,首先要确保执行的启动脚本就是 /etc/profile 。**只有Login shell 启动时才会运行 /etc/profile 这个脚本,而Non-login shell 不会调用这个脚本。
一些重要的变量就是在这个脚本文件中设置的,含义如下:
- PATH: 预设可执行文件或命令的搜索路径。
- USER: 用户登录时使用的用户名。
- LOGNAME: 其值为$USER。
- HOSTNAME: 所使用的主机名。
- MAIL: 存放用户电子邮件的邮箱(实际上是一个ASCII码文件)。
- HISTSIZE: 历史记录的行数。
- INPUTRC: 存放的是针对键盘热键的信息(也是一个ASCII码文件)。
打开/etc/profile文件,PATH=$PATH:/usr/local/php/sapi/fpm
就是定义了一个全局变量
执行source /etc/profile后生效
创建局部环境变量
打开 ~/.bash_profile文件添加PATH:
执行source ~/.bash_profile后生效
创建用户定义变量
/etc/profile文件和/etc/profile.d目录的区别
/etc/profile文件中存放的变量上面已经做过说明。
在/etc/profile.d 目录中存放的是一些应用程序所需的启动脚本,其中包括了颜色、语言、less、vim及which等命令的一些附加设置。
这些脚本文件之所以能够 被自动执行,是因为在/etc/profile 中使用一个for循环语句来调用这些脚本。而这些脚本文件是用来设置一些变量和运行一些初始化过程的。
在/etc/profile.d目录下创建全局变量
在/etc/profile.d目录下创建的变量也是全局变量,方法如下:
重新打开shell后生效