在Linux中,变量值按变量的生命周期来划分,可以分为两类,即永久性变量和临时变量。若需要定义永久性变量则需要修改配置文件,而临时变量可以使用export命令声明,所声明的变量在关闭shell时失效。
1.在/etc/profile文件中定义永久性变量
在/etc/profile文件中定义永久性变量对所有的用户都有效,并且是永久性存在的,/etc/profile文件所定义的内容如下:
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
pathmunge () {
if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
fi
}
# ksh workaround
if [ -z "$EUID" -a -x /usr/bin/id ]; then
EUID=`id -u`
UID=`id -ru`
fi
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
fi
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
if [ -x /usr/bin/id ]; then
USER="`id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
fi
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
INPUTRC=/etc/inputrc
fi
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
. $i
fi
done
unset i
unset pathmunge
例如,需要在/etc/profile中间中定义对系统所有用户都有效的永久性变量CLAAPATH,就可以用编辑器卡开该文件并使用export命令定义变量export CLAAPATH=${JAVA_HOME}/lib;${JAVA_HOME}/jre/lib
修改/etc/profile文件后,设置的变量在下次启动系统时生效,若想立即生效,运行命令 source /etc/profile
2.在当前用户的.bash_profile文件中定义
在当前用户的.bash_profile文件中定义,只对单用户有效,也就是说属于个人使用的变量。在当前用户下的.bash_profile文件中所定义的变量,
也属于用就像变量,下面是.bash_profile中的内容:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
unset USERNAME
若想定义变量和上面的方法一致。
3.直接运行export命令定义变量
在终端提示下,可以直接使用命令 “export 变量名=变量值”的形式来定义变量,不过所有的变量只对当前的shell有效,即为临时变量,若关闭shell,所定义的变量就会失效.