1. 显示环境变量HOME $ echo $HOME /home/redbooks 2. 设置一个新的环境变量hello $ export HELLO="Hello!" $ echo $HELLO Hello! 3. 使用env命令显示所有的环境变量 $ env HOSTNAME=redbooks.safe.org PVM_RSH=/usr/bin/rsh Shell=/bin/bash TERM=xterm HISTSIZE=1000 ... 4. 使用set命令显示所有本地定义的Shell变量 $ set BASH=/bin/bash BASH_VERSINFO=([0]="2"[1]="05b"[2]="0"[3]="1"[4]="release"[5]="i386-redhat-linux-gnu") BASH_VERSION='2.05b.0(1)-release' COLORS=/etc/DIR_COLORS.xterm COLUMNS=80 DIRSTACK=() DISPLAY=:0.0 ... 5. 使用unset命令来清除环境变量 set可以设置某个环境变量的值。清除环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。示例如下: $ export TEST="Test..." #增加一个环境变量TEST $ env|grep TEST #此命令有输入,证明环境变量TEST已经存在了 TEST=Test... $ unset $TEST #删除环境变量TEST $ env|grep TEST #此命令没有输出,证明环境变量TEST已经存在了 6. 使用readonly命令设置只读变量 如果使用了readonly命令的话,变量就不可以被修改或清除了。示例如下: $ export TEST="Test..." #增加一个环境变量TEST $ readonly TEST #将环境变量TEST设为只读 $ unset TEST #会发现此变量不能被删除 -bash: unset: TEST: cannot unset: readonly variable $ TEST="New" #会发现此也变量不能被修改 -bash: TEST: readonly variable 环境变量的设置位于/etc/profile文件 如果需要增加新的环境变量可以添加下属行 export path=$path:/path1:/path2:/pahtN .. 7. 用C程序来访问和设置环境变量 对于C程序的用户来说,可以使用下列三个函数来设置或访问一个环境变量。 ◆ getenv()访问一个环境变量。输入参数是需要访问的变量名字,返回值是一个字符串。如果所访问的环境变量不存在,则会返回NULL。 ◆ setenv()在程序里面设置某个环境变量的函数。 ◆ unsetenv()清除某个特定的环境变量的函数。 另外,还有一个指针变量environ,它指向的是包含所有的环境变量的一个列表。下面的程序可以打印出当前运行环境里面的所有环境变量: #i nclude extern char**environ; int main () { char**var; for (var =environ;*var !=NULL;++var) printf ("%s ",*var); return 0; } Linux下的环境变量设置 # /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 } # Path manipulation if [ `id -u` = 0 ]; then pathmunge /sbin pathmunge /usr/sbin pathmunge /usr/local/sbin fi pathmunge /usr/X11R6/bin after unset pathmunge # No core files by default ulimit -S -c 0 > /dev/null 2>&1 USER="`id -un`" LOGNAME=$USER MAIL="/var/spool/mail/$USER" 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 JAVA_HOME="/opt/j2sdk1.4.2_01" MYSQL_HOME="/var/mysql" CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar PATH=$PATH:$JAVA_HOME/bin:$MYSQL_HOME/bin:/opt/apache-ant-1.5.4/bin export JAVA_HOME CLASSPATH PATH CVSROOT=/cvsroot; export CVSROOT LINUX系统环境变量 /etc/profile对整个系统有效. 确定你使用的是bash 修改~/.bash_profile 把你要设置的环境变量写进去 例如 JAVA_HOME=/usr/local/jdk export JAVA_HOME ----------------------------------------------------------------------------------------------------------------------- 1.Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1.1 永久的:需要修改配置文件,变量永久生效。 1.2 临时的:使用export命令声明即可,变量在关闭shell时失效。 2.设置变量的三种方法 2.1 在/etc/profile文件中添加变量【对所有用户生效(永久的)】 用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。 例如:编辑/etc/profile文件,添加CLASSPATH变量 # vi /etc/profile export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib 注:修改文件后要想马上生效还要运行# source /etc/profile不然只能在下次重进此用户时生效。 2.2 在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】 用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。 例如:编辑guok用户目录(/home/guok)下的.bash_profile $ vi /home/guok/.bash.profile 添加如下内容: export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib 注:修改文件后要想马上生效还要运行$ source /home/guok/.bash_profile不然只能在下次重进此用户时生效。 2.3 直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】 在shell的命令行下直接使用[export 变量名=变量值] 定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。 3.环境变量的查看 3.1 使用echo命令查看单个环境变量。例如: echo $PATH 3.2 使用env查看所有环境变量。例如: env 3.3 使用set查看所有本地定义的环境变量。 unset可以删除指定的环境变量。 4.常用的环境变量 PATH 决定了shell将到哪些目录中寻找命令或程序 HOME 当前用户主目录 HISTSIZE 历史记录数 LOGNAME 当前用户的登录名 HOSTNAME 指主机的名称 SHELL 当前用户Shell类型 LANGUGE 语言相关的环境变量,多语言可以修改此环境变量 MAIL 当前用户的邮件存放目录 PS1 基本提示符,对于root用户是#,对于普通用户是$