Centos添加环境变量(~/.bash_profile、/etc/profile、/etc/profile.d)

环境变量

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就是定义了一个全局变量

PATH=$PATH:/usr/local/php/sapi/fpm
PATH=$PATH:/usr/local/openresty/nginx/sbin
PATH=$PATH:/usr/local/php/bin
PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
#PATH=$PATH:/usr/local/apache24/bin/
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

1
2
3
4
5
6

执行source /etc/profile后生效
创建局部环境变量

打开 ~/.bash_profile文件添加PATH:

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
PATH=$PATH:/usr/local/apache24/bin

export PATH
#也可以通过这种方式给环境变量起别名
alias nginx2=/usr/local/nginx/sbin/nginx

1
2
3
4
5
6
7
8

执行source ~/.bash_profile后生效
创建用户定义变量

export PATH=$PATH:/usr/local/apache24/bin

1

/etc/profile文件和/etc/profile.d目录的区别

/etc/profile文件中存放的变量上面已经做过说明。

在/etc/profile.d 目录中存放的是一些应用程序所需的启动脚本,其中包括了颜色、语言、less、vim及which等命令的一些附加设置。
这些脚本文件之所以能够 被自动执行,是因为在/etc/profile 中使用一个for循环语句来调用这些脚本。而这些脚本文件是用来设置一些变量和运行一些初始化过程的。
在/etc/profile.d目录下创建全局变量

在/etc/profile.d目录下创建的变量也是全局变量,方法如下:

vim /etc/profile.d/httpd.sh

APACHE_HOME=/usr/local/apache24
PATH=$APACHE_HOME/bin:$PATH
export APACHE_HOME PATH

1
2
3
4
5

重新打开shell后生效

Leave a Reply

邮箱地址不会被公开。 必填项已用*标注

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>