环境变量

来源:互联网 发布:工商银行重庆分行数据 编辑:程序博客网 时间:2024/05/26 14:10

什么是环境变量?环境变量是什么意思?

环境变量是包含关于系统及当前登录用户的环境信息的字符串,一些软件程序使用此信息确定在何处放置文件(如临时文件).

环境变量说白了就是指定一个软件的路径,比如说配置TomcatJdk等软件时就必须设置环境变量。方法如下:

点击我的电脑然后按右键——属性——高级——环境变量——新建——名称/路径。

环境变量是包含诸如驱动器、路径或文件名之类的字符串。环境变量控制着多种程序的行为。例如,TEMP 环境变量指定程序放置临时文件的位置。

任何用户都可以添加、修改或删除用户的环境变量。但是,只有管理员才能添加、修改或删除系统环境变量。

使用“控制面板”中的“系统”可以自定义下列变量:

用于 logged_on_user_name 的用户环境变量

对于特定计算机的每个用户来说,用户环境变量是不同的。变量包括由用户设置的任何内容,以及由应用程序定义的所有变量,例如应用程序文件的路径。

系统环境变量

管理员可以更改或添加应用到系统(从而应用到系统中的所有用户)的环境变量。安装期间,Windows 2000 安装程序配置默认的系统变量,例如 Windows 2000 文件的路径

(以linux为例)Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。

常见的环境变量如PATH和HOME等大家都不陌生。除此之外,还有下面一些常见环境变量。

HISTSIZE是指保存历史命令记录的条数。

LOGNAME是指当前用户的登录名。

HOSTNAME是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。

SHELL是指当前用户用的是哪种Shell。

LANG/LANGUGE是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。

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

PS1是基本提示符,对于root用户是#,对于普通用户是$。PS2是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符。

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

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

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

~/.profile 是在用户的主目录下的一个文件,每次用户登陆都会执行这里边的ENV环境变量设置。

/etc/profile是一个全局的环境变量设置,只要登陆系统的用户都会执行里面的ENV环境变量设置。

~/.kshrc是在用户的主目录下面的,每次执行KSH下面的子shell的时候,都会执行这里面的ENV环境变量设置。

~/.dtprofile是在用户的主目录下面的,在这里设置你进入CDE时的一些变量,如果用户没有通过CDE进入过系统,那么将不会产生这个文件,只有用户曾经用CDE进入过系统后就会自动生成一个.dtprofile文件,然后还可以对里边的变量进行设置。如果在这个文件里的DTSOURCEPROFILE的变量设置为true,则会读取用户主目录下的.profile文件里的变量设置,如果没有这个变量或者设置为false,那么将不读取.profile里的环境变量。如果想让刚刚改变的.profile或.kshrc里面的设置马上生效使用,可以使用以下的命令:

~/.profile

~/.kshrc

与Bourne shell或者Kron shell对应的profile是用户home目录下的.profile文件

与C shell对应的profile是用户home目录下的.login文件

与Bash对应的profile是用户home目录下的.bash_profile文件

优化环境变量 道理在四个故事中
Windows XP环境变量是提供给系统及用户应用程序使用的一些值,比如系统目录位置、临时文件目录等。

乌鸦口渴了,到处找水喝。终于,它找到了一个大水罐。水罐里的水并不多,嘴够不到水面,它试了多次都没有成功。就在它想放弃的时候,突然想到一个主意。乌鸦叼来了一块小石子投到水罐里,不断重复着这个动作……水面渐渐升高了,乌鸦高兴地喝到了水。

寓意: 有些东西虽然看起来微不足道,但如果积少成多,便会带来很大变化。

系统里的临时文件正是如此,如果积累得太多(由于非法操作造成的程序退出会形成大量此类文件滞留在硬盘中),就会造成分区紧张和大量磁盘碎片。要禁止临时文件是不可能的,何不疏导一下呢?你只需要修改一下环境变量中的临时文件目录变量。

右击“我的电脑”选择“属性”,在“高级”选项卡中点击窗口下方的“环境变量”(见图1),在舜翱谥蟹治?ldquo;用户变量”和“系统变量”两部分,前者只对当前用户有效,而后者则是对系统中的所有用户有效。“用户变量”中的“Temp”和“Tmp”就是对应临时文件目录的保存位置,选中它们后点击修改,然后把这些垃圾的存放地点改为别的分区目录吧(必须是已经存在的路径)!需要注意的是,这样做只是把临时文件暂时弄到别处去了,它的体积不会变小,在撑爆别的分区前,还是定期清理一下好。

大小猫,大小门

有人养了两只猫,一大一小,他为猫做了套新的猫房,分别根据大猫和小猫的体型各开了一扇门,也是一大一小。结果他发现,每次大小猫都只从大的那个门走。

寓意:有时过分的个性化反而会导致冗余。

你知道这和DLL有什么关系吗?打开一些程序时你有可能收到缺少DLL文件的错误提示,这些文件一般是程序本身自带的库或者某种语言通用的运行库。碰上这种错误,最好的方法就是下载需要的DLL文件,然后放入系统目录或者软件所在目录,每个程序目录都放显然太冗余了,如果放在系统目录,重装时想备份根本找不着,用环境变量把它们集中放在一个目录吧!

在D:\建立一个“Runtime”目录,把需要的软件运行库放在里面,然后按照上文的方法打开“系统变量”设置,选择“系统变量”的“Path”项点击“修改”,里面原来包含“%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;”(见图),程序调用DLL文件时也会搜索这些目录,在最后添加“;D:\runtime”(不含引号),这样所有的程序在需要DLL时都会先找找这个目录了。

骆驼和阿拉伯人

一个阿拉伯的骆驼夫把货满载在骆驼背上后,问骆驼是喜欢上山还是喜欢下山。骆驼振振有词地说:“你为什么这样问我?难道经过沙漠的平坦大道都关闭了吗?”

寓意:不了解事物的特性就不可能正确使用它。

如果你因为运行msconfig.exe能直接打开系统配置实用程序,就以旁谟才汤锏钠渌绦蛞部梢韵裾庋÷月肪叮蔷痛蟠硖卮砹恕U庑┠芄恢苯釉诵械某绦蛞痪褪窃谙低衬柯枷?默认的系统变量路径),要不就是将自身加入了系统变量(如C++编译器)。如果你希望今后运行程序时不用输路径,可以在“Path”项中增加程序所在目录的位置。

鸟、兽和蝙蝠

鸟与野兽宣战,双方各有胜负。蝙蝠遇见鸟就自称鸟,遇见兽就自称兽,当鸟兽停战后才明白了蝙蝠的欺骗行为,因此将他赶出日光之外。

寓意:任何事物都有两面性,不要以为好的东西永远是好的。

系统变量能帮我们忙,但有时也会惹麻烦,有很多莫名其妙的故障就是系统变量造成的。

从刚才的几个实例可以看出,包括msconfig.exe在内的很多系统内置程序都是依赖于系统变量的,因此如果出现运行时找不到程序的情况,就应该查看一下系统变量是否正常,如果缺失可以按照上文的内容手工填入。另外,应尽量避免在系统变量中使用中文路径,因为很多国外程序在使用这些系统变量时会出现无法访问的情况。


 来自www.fundfund.cn 详文参考:http://www.fundfund.cn/news/20100321/201032156857.htm

原创粉丝点击