环境变量的介绍

windows

Windows系统中,环境变量可分为用户变量和系统变量。用户变量可以被当前用户修改,而系统变量则只能由具有管理员权限的用户进行添加或修改。

配置环境变量

除了直接在"系统属性"窗口中修改,还可以在命令提示符或注册表编辑器中修改,甚至可以使用专门的程序函数进行修改。改变环境变量和环境变量中的值时,注意不要含有空格,也不要用中文。

方法一:

通过命令提示符修改。这种设置环境变量的方式只对当前运行窗口有效,关闭运行窗口后设置就无效了。按下"Win+R"组合键,打开运行组合键,输入"cmd"命令打开命令提示符窗口。在该窗口,我们可以通过set命令来查看、创建、删除或修改环境变量。比如,要查看Path环境变量的设置,可以输入"set Path";如果要设置一个安装JAVA程序的环境变量"JAVA_HOME",并将其值设置为"D:\Java\jdk1.6.0",可以输入:"set JAVA_HOME=D:\Java\jdk1.6.0";如果要删除这个环境变量,可以输入:"set JAVA_HOME="(注意"="号后面没有空格)。修改环境变量时,主要是追加的方法,即在不改变环境变量现有设置的情况下,增加变量的值。比如要给环境变量"Path"增加一个值为"%JAVA_HOME%\BIN;"的值,可以输入:"set Path=Path;%JAVA_HOME%\BIN;"

方法二:

通过注册表修改。在"运行"对话框中输入"regedit"命令,打开注册表编辑器。然后,定位到[HKEY_LOCAL_MACHINE\

SYSTEM\CurrentControlSet\Control\Session Manager\Environment]子键,当前系统的环境变量就会出现在右侧窗格。双击需要修改的变量,打开"编辑字符串"对话框,然后在"数值数据"文本框中修改即可。使用同样的方法,定位到用户变量的子键[HKEY_CURRENT_

USER\Environment],在这里可以对用户变量进行修改。

环境变量的备份与恢复

方法一:

环境变量是一些个性化的参数组合,在日常使用中,用户可对其进行备份。在注册表编辑器中查找环境变量时,单击"编辑→查找",输入环境变量值即可。找到保存位置后,选择"文件→导出注册表文件",在弹出窗口中勾选导出范围为"选定的分支",把它们导出为REG文件。在重装系统或想将自己设置的环境变量与别人共享时,可以双击导出的REG文件,导入相关参数。导入后,重启系统即可。例如:

系统的环境变量放在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

用户的环境变量放在HKEY_CURRENT_USER\Environment

可以在开始中运行regedit导出和导入相应的键值。

方法二:

在开始菜单中运行cmd,进入命令窗口,用set命令得到所有的变量设置,用set >> c:\environment.txt将这些值写入文件中。可以将这些变量设置逐条拷贝到环境变量的设置中(我的电脑--属性--高级--环境变量)如果不想把这么多的变量写道这个环境变量中,或者是为了更好的移植,也可以用下面的方法:

编写一个bat文件,内容是设置一些变量,例如:

call %NA_ROOT%\ini\expEnv PATH %projectsDir%\bin

set ORBIX_ROOT=%MIDDLEWARE%\orbix_2.3c

set PATH=%PATH%;%ORBIX_ROOT%\bin

等等跟具自己的需要添加,然后建立一个快捷方式,目标这样写%windir%\System32\cmd.exe /k c:\myenv.cmd

ok!运行这个快捷方式,bat中的设置会在这个窗口中了,关闭这个窗口当然就没有了变量设置。或者是用下面的方法:

在注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor中有一个autorun的键值,

将这个值指向一个.bat文件则在你运行cmd命令时会先运行这个批处理文件。另外,如果运行cmd /d命令就会跳过这个文件不执行。

 

 

巧用环境变量

比如,在浏览器地址栏中,输入网站中文名(如"新浪"),即可快速到达该网站。在"环境变量"对话框中,单击"系统变量"列表下的"新建"按钮,打开相应的对话框,在"变量名"文本框中,输入"新浪",在"变量值"文本框中,输入:""C:\Program Files\Internet Explorer\IEXPLORE.exe" www.sina.com.cn"。注意:IEXPLORE.exe"www之间有一个半角的空格。单击"确定"按钮,相关设置即可生效。在"运行"对话框中,输入"%新浪%",即可快速启动IE浏览器并进入新浪网站。

windows的系统变量

%homedrive% = 当前启动的系统的所在分区 (一般为C:\ )

%systemdrive% = 当前启动的系统的所在分区(一般为C:\ )

%SystemRoot% = 当前启动的系统的所在目录(一般为C:\WINDOWS )

%windir% = %SystemRoot% = 当前启动的系统的所在目录(一般为C:\WINDOWS )

%USERPROFILE% = 当前用户数据变量(一般为C:\Documents and Settings\用户名)

%HOMEPATH% = 当前用户环境变量(一般为C:\Documents and Settings\用户名)

%temp% = 当前用户TEMP缓存变量(一般为C:\Documents and Settings\用户名\Local Settings\Temp)

%programfiles% = 程序安装目录(一般为C:\Program Files)

%commonprogramfiles% = 通用文件目录(一般为C:\Program Files\Common Files )

%system% = 系统安装盘下的system32目录(一般为C:\WINDOWS\SYSTEM32 )

注:

%System%98下指windows\system2000下指winnt\system32\XP下指windows\system32文件夹,在Windows7下指系统盘(一般为C:\);%Appdata%Windows7系统下指:用户\AppData\Roaming

%%之间的字符串大小写都可以,不会对使用产生影响。

 

linux环境变量

对于bash来说,可以通过变量名来访问相应的环境变量

一、环境变量的设置与显示

1.显示环境变量HOME

$ echo $HOME

/home/admin

 

2.设置一个新的环境变量NAME

$ export NAME="RaidCheng"

$ echo $NAME

RaidCheng

 

3.使用env命令显示所有的环境变量

$ env

HOSTNAME=test

TERM=vt100

SHELL=/bin/bash

HISTSIZE=1000

SSH_CLIENT=202.xxx.xxx.xxx 53694 22

CATALINA_BASE=/usr/local/jakarta-tomcat

SSH_TTY=/dev/pts/0

ANT_HOME=/usr/local/ant

JAVA_OPTS=-server

USER=admin

...

 

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'

CATALINA_BASE=/usr/local/jakarta-tomcat

CATALINA_HOME=/usr/local/jakarta-tomcat

...

 

5.使用unset命令来清除环境变量

$ export NAME="RaidCheng"

$ echo $NAME

RaidCheng

$ unset NAME

$ echo $NAME

 

6.使用readonly命令设置只读变量

$ export NAME="RaidCheng"

$ readonly NAME

$ unset NAME

-bash: unset: NAME: cannot unset: readonly variable

$ NAME="New" #会发现此也变量不能被修改

-bash: TEST: readonly variable

 

三、常见的环境变量

PATH      决定了shell将到哪些目录中寻找命令或程序

HOME      当前用户主目录

HISTSIZE    历史记录数

LOGNAME     当前用户的登录名

HOSTNAME    指主机的名称

SHELL      前用户Shell类型

LANGUGE     语言相关的环境变量,多语言可以修改此环境变量

MAIL      当前用户的邮件存放目录

PS1       基本提示符,对于root用户是#,对于普通用户是$

PS2       附属提示符,默认是">"

 

四、通过C程序来访问和设置环境变量

对于C程序的用户来说,可以使用下列三个函数来设置或访问一个环境变量。

getenv()访问一个环境变量。输入参数是需要访问的变量名字,返回值是一个字符串。如果所访问的环境变量不存在,则会返回NULL

setenv()在程序里面设置某个环境变量的函数

unsetenv()清除某个特定的环境变量的函数

另外,还有一个指针变量environ,它指向的是包含所有的环境变量的一个列表。下面的程序可以打印出当前运行环境里面的所有环境变量:

 

#include

extern char**environ;

int main ()

{

char**var;

for (var =environ;*var !=NULL;++var)

printf ("%s /n ",*var);

return 0;

}

 

五、环境变量文件

通过修改一些相关的环境定义文件来修改环境变量,比如对于RedHat,与环境相关的文件有/etc/profile~/.bash_profile等。修改完毕后重新登录一次或运行命令source xxx就生效了。

1.修改/etc/profile文件

如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。

(1)用文本编辑器打开/etc/profile

(2)profile文件末尾加入:

JAVA_HOME=/usr/share/jdk1.5.0_05

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME

export PATH

export CLASSPATH

(3)重新登录

 

注解:

a. 你要将 /usr/share/jdk1.5.0_05jdk 改为你的jdk安装目录

b. linux下用冒号":"来分隔路径

c. $PATH / $CLASSPATH / $JAVA_HOME 是用来引用原来的环境变量的值,在设置环境变量时特别要注意不能把原来的值给覆盖掉了,这是一种常见的错误。

d. CLASSPATH中当前目录"."不能丢,把当前目录丢掉也是常见的错误。

e. export是把这三个变量导出为全局变量。

f. 大小写必须严格区分。

 

2. 修改.bashrc文件  

这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bashrc文件就可以了。

(1)用文本编辑器打开用户目录下的.bashrc文件

(2).bashrc文件末尾加入:  

set JAVA_HOME=/usr/share/jdk1.5.0_05

export JAVA_HOME

set PATH=$JAVA_HOME/bin:$PATH

export PATH

set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export CLASSPATH

(3)重新登录

 

3. 直接在shell下设置变量

不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时候又要重新设置,比较麻烦。

只需在shell终端执行下列命令:

export JAVA_HOME=/usr/share/jdk1.5.0_05

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

posted @ 2012-03-14 18:24  维唯为为  阅读(1136)  评论(0编辑  收藏  举报