环境变量
目录
1基本定义编辑
环境
变量一般是指在
操作系统中用来指定操作系统运行环境的一些参数,比如
临时文件夹位置和
系统文件夹位置等。这点有点类似于DOS时期的默认路径,当你运行某些
程序时除了在当前文件夹中寻找外,还会到设置的默认路径中去查找。简单地说这里的“Path”就是一个
变量,里面存储了一些常用
命令所存放的
目录路径。
环境
变量相当于给系统或用户
应用程序设置的一些参数, 具体起什么作用这当然和具体的环境变量相关. 比如path, 是告诉系统, 当要求系统运行一个程序而没有告诉它程序所在的完整路径时, 系统除了在
当前目录下面寻找此程序外, 还应到哪些目录下去寻找; 再如tc或vc++中, set include=path1;path2; 是告诉
编译程序到哪里去找.h类型的文件; 当然不仅仅是指定什么路径, 还有其它的作用的, 如set dircmd=/4 设置一个环境变量的作用是在使用dir
命令时会把/4作为缺省的参数添加到你的dir命令之后, 就像你的每个命令都加了/4参数, 它实际上是给命令
解释程序command设置的一个环境变量, 并且是给dir这个
内部命令设置的。
DWORD
GetEnvironmentVariable(LPCSTR lpName, LPSTR lpBuffer, DWORD dSize), 参数lpName是你要求查询的环境
变量的名, lpBuffer是返回你所指定的环境变量的值的, dSize是告诉这个
函数lpBuffer可以存放多少个字节.
分析本地故障时原因很可能就是因为环境
变量中的默认路径被删除的结果,默认路径一经设置,当前系统如有
程序运行时需要某些DLL或EXE文件,以及Active控件时就会到所有默认路径中去查找,如果在这些
目录中查找到相应的程序则自动加载,查找不到则报告缺少某某文件的
错误信息。
2环境变量编辑
解决双系统的软件共用问题
很多朋友会在自己的
计算机上安装双系统,例如C盘安装Windows XP,D盘安装Windows 7。可是某些
软件往往只在Windows XP系统中安装,Windows 7系统中是无法正常使用的,比较麻烦却有效的方法是再安装一遍。当我们了解了环境
变量中的用途后就可以很好解决双系统的
软件共用问题。
解决系统运行问题
为什么在Windows XP中安装了的
软件在Windows 7下无法运行呢(
绿色软件除外)?原因是安装软件时往往须要向系统
目录中复制某些文件,而使用另外一个系统时会由于缺少这些文件而无法运行。因此,我们可以通过设置环境
变量的方法来解决这个问题。
常见环境变量
%ALLUSERSPROFILE% 局部 返回所有“
用户配置文件”的位置。
%CD% 局部 返回
当前目录字符串。
%CMDCMDLINE% 局部 返回用来启动当前的 Cmd.exe 的准确
命令行。
%COMPUTERNAME% 系统 返回
计算机的名称。
%LOGONSEVER% 局部 返回验证当前登录会话的
域控制器的名称。
%NUMBER_OF_PROCESSORS% 系统 指定安装在
计算机上的处理器的数目。
%PATH% 系统 指定
可执行文件的搜索路径。
%PROCESSOR_ARCHITECTURE% 系统 返回处理器的芯片体系结构。值: x86,IA64。
%PROCESSOR_IDENTFIER% 系统 返回处理器说明。
%PROCESSOR_LEVEL% 系统 返回
计算机上安装的处理器的型号。
%PROCESSOR_REVISION% 系统 返回处理器修订号的
系统变量。
%RANDOM% 系统 返回 0 到 32767 之间的任意
十进制数字。由 Cmd.exe 生成。
%SYSTEMROOT% 系统 返回 Windows XP 根
目录的位置。
%TIME% 系统 返回当前时间。使用与 time /t 命令相同的格式。由 Cmd.exe 生成。有关 time
命令的详细信息,请参阅 Time。
%USERDOMAIN% 局部 返回包含
用户帐户的域的名称。
%USERNAME% 局部 返回当前登录的用户的名称。
%UserProfile% 局部 返回当前用户的配置文件的位置。
Linux下的环境变量
shell环境依赖于多个文件的设置。当shell被调用时,它从两个初始文件读取
命令。/etc/profile包含了
系统变量,它由
系统管理员维护,由系统管理员设置本地系统变量和特殊
命令。普通用户的启动
信息文件($HOME/.bash_project)由各用户自己维护,该文件可以被修改以实现任何特定的
系统初始化。
只有在特定的
情况下才读取profile文件,确切的说是在用户登陆的时候。当运行shell脚本或subshell以后,就无须再读profile.虽然所有profile都可选的,但是基本上所有系统都有/etc/profile.
如果定义了
变量ENV且已经传递到环境中,则所有的bash shell都要读取并调用由这个变量制定的文件所包含的
命令。这个文件用来定义所有bash shell的特征,而不仅仅是登陆到shell。这个文件的典型的名字是$HOME/,bashrc。
Example:
一个典型的系统profile(/etc/profile):
PATH=$PATH:/usr/qa/tools/bin
ENV==$HOME/.bashrc
ORACLE_HOME=/
dbs/oracle
ORACLE_SID=qadb
Export PATH ENV ORACLE_HOME ORCAL_SID
Cat /etc/motd
一个典型的用户profile(.bashrc)
PATH=$PATH:$HOME/bin
TEAM=uvt1224 export TERM
cal
mesg n
一个典型的用户 bashrc file (.bashrc):
alias dir=ls lf='ls -FC'
PSI='$PWS[!]>'
set -o vi
别名和其他bash专用的定义应该放在.bashrc文件(不应在.bash_profile) 中定义;否则会导致找不到某些
命令。
应该记住profile文件和.bashrc文件的区别:两个profile都只在系统启动时被读取一次,而.bashrc在系统启动和每次调用shell的时候都要被读取。
3设置方法编辑
在windows
操作系统中可以通过
我的电脑-〉属性-〉高级,来设置系统的环境
变量,然而在此设置的环境变量是否在注册表中具有对应的项呢?答案是肯定的。而在.net 中提供了一个类来获取系统的环境
变量及其值。
其中用户
变量所在位置:
HKEY_CURRENT_USER\Environment;
系统变量所在位置为:\
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001
\Control\Session Manager\Environment。
另外也可以右击
我的电脑——高级——环境
变量——在
系统变量里有path选项——双击打开——在原有变量的基础上添加英文状态下的分号——然后将路径名输入即可。(切记,不要删除原先的
系统变量,只要用分号隔开,然后添加)
4编辑方法编辑
在命令行中对环境变量进行编辑的方法
set
查看某个环境
变量,如PATH
set PATH
添加环境
变量,如xxx=aa
set xxx=aa
将环境
变量(如xxx)的值置为空
set xxx=
在某个环境
变量(如PATH)后添加新的值(如d:\xxx)
set PATH=%PATH%;d:\xxx