-
1.环境变量是操作系统环境设置的变量,适用于整个系统的用户进程
-
2.环境变量可以在命令中设置,但是用户注销的时候将会丢失这些设置值
-
3.若要重复使用,则最好在
.profile
中定义; 环境变量的使用与本地变量的使用方法相同 -
4.在使用之前,必须用 export 命令导出
一、概要
/etc/environment # 系统环境变量,系统启动时装载+
/etc/profile # 所有用户的环境变量,用户登陆时装载
~/.bash_profile # 存在就执行,且后续4,5配置文件不加载
~/.bash_login # 存在就执行,且后续5配置文件不加载
~/.profile # 存在就行
---------------------------------------------------------------
~/.bashrc # 用户登录成功后,每启动一个terminal就会执行一次加载
注:每次用户登录时,都会从2~5的顺序加载,有则加载并停止后续加载
二、系统启动文件
1. /etc/environment 文件
操作系统在登录时使用的第一个文件是 /etc/environment 文件,/etc/environment 文件包含指定所有进程的基本环境的变量
2. /etc/profile 文件
操作系统在登录时使用的第二个文件是 /etc/profile 文件
/etc/profile 文件控制系统范围的缺省变量, 系统管理员配置系统上所有用户的 /etc/profile 文件。只有系统管理员可以更改此文件
-
导出变量
-
文件创建掩码(umask)
-
终端类型
-
新邮件到达时作为指示的邮件消息
#Set file creation mask
umask 022
#Tell me when new mail arrives
MAIL=/usr/mail/$LOGNAME
#Add my /bin directory to the Shell search sequence
PATH=/usr/bin:/usr/sbin:/etc::
#Set terminal type
TERM=lft
#Make some environment variables global
export MAIL PATH TERM
3. profile 文件
.profile 文件在主目录($HOME)中,定制个人工作环境
cd
ls -a
在 login 程序将 logname(登录名) 和 home(登录目录)变量添加到环境中后,将会执行 $HOME/.profile
-
.profile 文件包含覆盖 /etc/profile 文件中变量集的个人概要文件
-
.profile 文件通常用于设置导处的环境变量和终端方式
.profile文件控制以下缺省值:
-
要打开的 shell
-
提示符外观
-
键盘声音
例子:
PATH=/usr/bin:/etc:/home/bin1:/usr/lpp/tps4.0/user::
epath=/home/gsc/e3:
export PATH epath
csh
此示例定义了两个路径变量(PATH 和 epath),将它们导出,并打开 C Shell(csh)。
还可以使用 .profile 文件(或者,如果它不存在,使用 /etc/profile 文件)来确定登录 Shell 程序变量。您还可以定制其他 Shell 环境。例如,使用 .cshrc 文件和 .kshrc 文件来分别定制 C Shell 和 Korn Shell 程序(当启动每种类型的 Shell 时)
4. .env 文件
如果 .profile 包含以下行:
export ENV=$HOME/.env
,那么操作系统在登录时使用的第四个文件是 .env 文件。
-
.env 文件使您能够定制个人工作环境变量
-
.env 文件包含覆盖 /etc/environment 文件中变量集的个人用户环境变量
-
可以通过修改 .env 文件来按需定制环境变量
例子:
export myid=`id | sed -n -e 's/).*$//' -e 's/^.*(//p'`
#set prompt: login & system name & path
if [ $myid = root ]
then typeset -x PSCH='#:\${PWD}> '
PS1="#:\${PWD}> "
else typeset -x PSCH='>'
PS1="$LOGNAME@$UNAME:\${PWD}> "
PS2=">"
PS3="#?"
fi
export PS1 PS2 PS3
#setup my command aliases
alias ls="/bin/ls -CF" \
d="/bin/ls -Fal | pg" \
rm="/bin/rm -i" \
up="cd .."