[TOC]
什么是环境变量
为了方便管理系统,在shell会话过程定义了存储数据的变量。
环境变量有两种:
- 全局环境变量(所有shell可见)
- 局部环境变量(只有创建的shell才可见)
提醒:
- 全局变量命名习惯全大写,局部变量名不全大写
- 局部变量可以暴露到全局,用
export
命令 - 无法用
export
修改已存在的全局变量
设置环境变量
定义局部变量语法
# 等于号之间不能存在空格
NAME="张家泳"
age=23
使用变量
echo $NAME
定义全局变量
NAME="daifee"
export NAME
删除环境变量
unset NAME
默认环境变量
- 系统设置的环境变量
- shell程序设置的环境变量
设置持久化环境变量
bash shell启动时会执行几个启动文件。具体执行哪几个,由bash shell的启动方式决定。bash shell有3种启动方式:
登录shell
登录时启动的shell
启动文件:
-
/etc/profile
默认的主启动文件 $HOME/.bash_profile
-
$HOME/.bashrc
一般被其他启动文件引用 $HOME/.bash_login
$HOME/.profile
启动文件2、4、5,按顺序查找,只执行第一个被查找到的。
交互式shell进程
登录后再在终端启动的shell
只会执行$HOME/.bashrc
启动文件
非交互式shell进程
系统执行shell script启动的shell
执行BASH_ENV
指定的启动文件,如果没有,则不执行启动文件(主要靠继承父shell获取变量数据)。
环境变量持久化
将环境变量定义在上面提到的文件中,最好是下面两个文件:
-
/etc/profile.d/
文件名.sh 所有用户可用 -
$HOME/.bashrc
自己可用