Windows与linux下环境变量的配置

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\system,2000下指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)重新登录

  1. 直接在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
    

版权所有,转载请注明出处 luowei.github.io.