[TOC]
什么是環(huán)境變量
為了方便管理系統(tǒng),在shell會(huì)話過程定義了存儲(chǔ)數(shù)據(jù)的變量。
環(huán)境變量有兩種:
- 全局環(huán)境變量(所有shell可見)
- 局部環(huán)境變量(只有創(chuàng)建的shell才可見)
提醒:
- 全局變量命名習(xí)慣全大寫,局部變量名不全大寫
- 局部變量可以暴露到全局,用
export命令 - 無法用
export修改已存在的全局變量
設(shè)置環(huán)境變量
定義局部變量語法
# 等于號(hào)之間不能存在空格
NAME="張家泳"
age=23
使用變量
echo $NAME
定義全局變量
NAME="daifee"
export NAME
刪除環(huán)境變量
unset NAME
默認(rèn)環(huán)境變量
- 系統(tǒng)設(shè)置的環(huán)境變量
- shell程序設(shè)置的環(huán)境變量
設(shè)置持久化環(huán)境變量
bash shell啟動(dòng)時(shí)會(huì)執(zhí)行幾個(gè)啟動(dòng)文件。具體執(zhí)行哪幾個(gè),由bash shell的啟動(dòng)方式?jīng)Q定。bash shell有3種啟動(dòng)方式:
登錄shell
登錄時(shí)啟動(dòng)的shell
啟動(dòng)文件:
-
/etc/profile默認(rèn)的主啟動(dòng)文件 $HOME/.bash_profile-
$HOME/.bashrc一般被其他啟動(dòng)文件引用 $HOME/.bash_login$HOME/.profile
啟動(dòng)文件2、4、5,按順序查找,只執(zhí)行第一個(gè)被查找到的。
交互式shell進(jìn)程
登錄后再在終端啟動(dòng)的shell
只會(huì)執(zhí)行$HOME/.bashrc啟動(dòng)文件
非交互式shell進(jìn)程
系統(tǒng)執(zhí)行shell script啟動(dòng)的shell
執(zhí)行BASH_ENV指定的啟動(dòng)文件,如果沒有,則不執(zhí)行啟動(dòng)文件(主要靠繼承父shell獲取變量數(shù)據(jù))。
環(huán)境變量持久化
將環(huán)境變量定義在上面提到的文件中,最好是下面兩個(gè)文件:
-
/etc/profile.d/文件名.sh 所有用戶可用 -
$HOME/.bashrc自己可用