当前位置:文档之家› linux环境变量基本概念以及如何定制环境变量

linux环境变量基本概念以及如何定制环境变量

linux环境变量基本概念以及如何定制环境变量
linux环境变量
定义: 环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等。这点有点类似于DOS时期的默认路径,当你运行某些程序时除了在当前文件夹中寻找外,还会到设置的默认路径中去查找。简单地说这里的“Path”就是一个变量,里面存储了一些常用命令所存放的目录路径。 环境变量相当于给系统或用户应用程序设置的一些参数, 具体起什么作用这当然和具体的环境变量相关. 比如path, 是告诉系统, 当要求系统运行一个程序而没有告诉它程序所在的完整路径时, 系统除了在当前目录下面寻找此程序外, 还应到哪些目录下去寻找; 再如tc或vc++中, set include=path1;path2; 是告诉编译程序到哪里去找.h类型的文件; 当然不仅仅是指定什么路径, 还有其它的作用的, 如set dircmd=/4 设置一个环境变量的作用是在使用dir命令时会把/4作为缺省的参数添加到你的dir命令之后, 就像你的每个命令都加了/4参数, 它实际上是给命令解释程序command设置的一个环境变量, 并且是给dir这个内部命令设置的。 DWORDGetEnvironmentVariable(LPCSTR lpName, LPSTR lpBuffer, DWORD dSize), 参数lpName是你要求查询的环境变量的名, lpBuffer是返回你所指定的环境变量的值的, dSize是告诉这个函数lpBuffer可以存放多少个字节. 分析本地故障时原因很可能就是因为环境变量中的默认路径被删除的结果,默认路径一经设置,当前系统如有程序运行时需要某些DLL或EXE文件,以及Active控件时就会到所有默认路径中去查找,如果在这些目录中查找到相应的程序则自动加载,查找不到则报告缺少某某文件的错误信息。
环境变量是和Shell紧密相关的,用户登录系统后就启动了一个Shell。对于Linux来说一般是bash,但也可以重新设定或切换到其它的 Shell。环境变量是通过Shell命令来设置的,设置好的环境变量又可以被所有当前用户所运行的程序所使用。对于bash这个Shell程序来说,可以通过变量名来访问相应的环境变量,通过export来设置环境变量。下面通过几个实例来说明。
1、 显示环境变量HOME (用ech0 $..来查看)
$ echo $HOME
/home/terry
2、 设置一个新的环境变量WELCOME
$ export WELCOME="Hello!"
$ echo $WELCOME
Hello!
3、 使用env命令显示所有的环境变量
$ env
HOSTNAME=https://www.doczj.com/doc/4815932003.html,
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
附加说明:
l etc/profile对整个系统有效
l ~/.bash_profile文件对普通用户有效
l 相关的文件还有.bash_logout .bash_login。比如我的.bash_logout指定Clear,每次退出是自动清屏

定制环境变量
1、 linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。
2、 常在/etc/profile文件中修改环境变量,在这里修改的内容是对所有用户起作用的。以下主要操作将在该文件中进行。
3、如何添加环境变量。
例如添加”NAME=liheng“ 。
在profile文件的最后添加如下内容export NAME=liheng
变量值liheng可以加引号也可以不加,效果一样。
4、 在profile文件添加或修改的内容需要注销系统才能生效(如果不想主销系统,则可以直接用source命令)。
5、 重复定义变量怎样理解
经常出现的是对PATH变量的定义。
例如:在peofile文件默认对PATH变量都有设置PATH=XXXXXX,在以后可能在对PATH设置,一般都加在profile文件的最后PATH=······(打个比方)。而系统之中认定的PATH=·······XXXXXXXX,也就是说相同名字的环境变量,后写入的先起作用(通俗地讲)!!!!!!!!!!!!!
6、 特殊字符介绍。
例如在profile中有如下内容,通过以下内容说明特殊符号的用法。
export A=/q/jing:aaa/cc/ld
export B=.:/liheng/wang
export A=/cd/cdr:$A
l : 表示并列含义,例如A变量值有多个,用:符号进行分离。
l . 表示你操作的当前目录。例如pap命令会查找B环境变量。
l $ 表示该变量本次定义之前的值,例如$A代表/q/ji

ng:aaa/cc/ld。也就是说
A=/cd/cdr:/q/jing:aaa/cc/ld
7、 使用env命令显示所有的环境变量
在命令提示符下键入env就行了。
set命令显示所有本地定义的Shell变量。
8、 常见的环境变量
l PATH:决定了shell将到哪些目录中寻找命令或程序
l HOME:当前用户主目录
l MAIL:是指当前用户的邮件存放目录。
l SHELL:是指当前用户用的是哪种Shell。
l HISTSIZE:是指保存历史命令记录的条数
l LOGNAME:是指当前用户的登录名。
l HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。
l LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。
l PS1:是终端提示符,对于root用户是#,对于普通用户是$。
l PS2:是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的终端提示命令符,比如下列命令会将提示符修改成字符串“Hello, My NewPrompt :) ”:
# PS1=" Hello, My NewPrompt :) "
9、 使用修改.bashrc文件进行环境变量的编辑,只对当前用户有用而使用修改/etc/profile 文件进行环境变量的编辑,是对所有用户有用。
10、 profile文件在系统启动时将被运行。大家可以在里面加入其他命令,但是一定要加正确,不然的话系统会启动不起来的

相关主题
文本预览
相关文档 最新文档