像我儿子一样永远保持好奇和梦想

[]shell环境变量以及set,env,export的区别

上一篇 / 下一篇  2012-09-07 10:03:07 / 个人分类:linux

  

K.ICW\)~:{0s5N4f|0一.shell环境变量的分类以及set env export的区别:龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台:T5Y8[O)E%X I8D-dg

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台SyfYz B

{/x&V#v E:X0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台`+ro%r#P&Nhj!F

set:显示(设置)shell变量 包括的私有变量以及用户变量,不同类的shell有不同的私有变量 bash,ksh,csh每中shell私有变量都不一样

_p-{e*a0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台~!ZR)I$d _PPu

env:显示(设置)用户变量变量

bM-l ?"S0

I4Ki1\+pnh'~BSm0export:显示(设置)当前导出成用户变量的shell变量。龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台$j'k-l'S)TJgR'Z

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台(c5[T7Y/Gj A

g6[|H a'bR#n0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 an0hznh

举个例子来讲:龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台iHppW1Dn/\.@

*wE4E)P8N,R#a1Q@0

  1. [oracle@zhou3 ~]$ aaa=bbb --shell变量设定
  2. [oracle@zhou3 ~]$ echo $aaa
  3. bbb
  4. [oracle@zhou3 ~]$ env| grep aaa --设置完当前用户变量并没有
  5. [oracle@zhou3 ~]$ set| grep aaa --shell变量有
  6. aaa=bbb
  7. [oracle@zhou3 ~]$ export| grep aaa --这个指的export也没导出,导出变量也没有
  8. [oracle@zhou3 ~]$ export aaa --那么用export 导出一下
  9. [oracle@zhou3 ~]$ env| grep aaa --发现用户变量内存在了
  10. aaa=bbb

TL NAm4X0

@7e*^ybs0

zdA Re6Ah0 龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台wr3KPN

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 zH pC$L^

总结:linux 分 shell变量(set),用户变量(env), shell变量包含用户变量,export是一种命令工具,是显示那些通过export命令把shell变量中包含的用户变量导入给用户变量的那些变量.

9oOd)u!Tb5a._\CdU0

!nh9p(^*b:F3[0 龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台V*v8c p)^w2[g"Rw

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台'`c0xU`,X6P,H']

二:使用unset命令来清除环境变量,注意set env export设置的变量,都可以用unset来清除的

2B4r*S2Vfz0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台@)b*C8L)\l2}

  1. 清除环境变量的值用unset命令。如果未指定值,则该变量值将被 设为NULL。示
  2. 例如下:
  3. $ export TEST="Test..." #增加一个环境变量TEST
  4. $ env|grep TEST #此命令有输入,证明环境变量TEST已经存在了
  5. TEST=Test...
  6. $ unset $TEST #删除环境变量TEST
  7. $ env|grep TEST #此命令没有输出,证明环境变量TEST已经不存在了
龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台3?+et1U(|B)\

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台S*|Ru4DmJS

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台8n#K/M#]4f7V

IGX!L.xm|1T @B0

Q@|:})n z3T0d0三:使用readonly命令设置只读变量龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台g4m w:oWe c!Z$Y6W

!b @#j$q9@{0

  1. 使用了readonly命令的话,变量就不可以被修改或清除了。示例如下:
  2. $ export TEST="Test..." #增加一个环境变量TEST
  3. $ readonly TEST #将环境变量TEST设为只读
  4. $ unset TEST #会发现此变量不能被删除
  5. -bash: unset: TEST: cannot unset: readonly variable
  6. $ TEST="New" #会发现此也变量不能被修改
  7. -bash: TEST: readonly variable
龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台s'Ou;g4e/p,b

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台G!IXZ kqAIOy

8w-o^0nq1Uj:g0

3E5L6Zp0l_+D0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 w||p5rL2m9P

四:最根本的设置、更改变量的配置文件 ~/.bash_profile ~/.bashrc ~/.bash_logout

@,k6|0`-td0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 _0As,m!uY

~/.bash_profile 用户登录时被读取,其中包含的命令被执行

"k5E7s6zwmu~i0

o$jS9H f;{;X bH0~/.bashrc 启动新的shell时被读取,并执行

7n"\6[#|R [G+]I)t0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台7]wcsp$nH3e.Mx

~/.bash_logout shell 登录退出时被读取龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台B.i(Xo jV.sJ|)|

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 ?o3i5h4SH`V Lv

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台/{*yR? bq"i

nK7@HU9Sa/Z0此外,shell(这里指bash)的初始化过程是这样的:

A*I*zo b0

1.bash 检查文件/etc/profile 是否存在龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台/iki3MZF!M

2. 如果存在,bash 就读取该文件,否则,跳过

]OiV;LL ?0

3.bash 检查主目录下的文件.bash_profile 是否存在。

-^ngu b c$IX~/b0

4. 如果存在,bash 就读取該文件,否则,跳过龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台&Mq&X1T"Jf2H

5.bash 检查主目录下的.bash_login 是否存在。龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台"?~sT@hEn2B u

6. 如果存在,bash 就读取该文件,否则,跳过

4I1I3dy t4z8B.u0

7.bash 检查主目录下的文件.profile 是否存在

Q%vlQ;R@0

8. 如果存在, bash 就读取该文件,否则,跳过。

4H a'iT0r]6_0

这些步骤都执行完后,就出现提示符了, ksh 默认提示符是 $.

FrfI ]:yR#[0

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台le&K3t{

龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台$qs"wdKg6E,n&VRf

五:常见的shell变量龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台(eW*U1Vz+yk+H&dZ

PATH 这个变量包含了一系列由冒号分隔开的目录,系统就从这些目录里寻找可执行文件。如果你输入的可执行文件(例如ls、rc-update或者emerge) 不在这些目录中,系统就无法执行它(除非你输入这个命令的完整路径,如/bin/ls)。
5H}(VlA#A0I0ROOTPATH 这个变量的功能和PATH相同,但它只罗列出超级用户(root)键入命令时所需检查的目录。 龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台5ZH:H9S8T S-gj
LDPATH 这个变量包含了一系列用冒号隔开的目录,动态链接器将在这些目录里查找库文件。 龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台*l'Hz @&_(H
MANPATH 这个变量包含了一系列用冒号隔开的目录,命令man会在这些目录里搜索man页面。
-qdKL P|}8dG7E a0INFODIR 这个变量包含了一系列用冒号隔开的目录,命令info将在这些目录里搜索info页面。 龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台)YEd/AfgCX
PAGER 这个变量包含了浏览文件内容的程序的路径(例如less或者more)。
6S't:{|mBv0EDITOR 这个变量包含了修改文件内容的程序(文件编辑器)的路径(比如nano或者vi)。
D}/T(D]#},s;^#q7{0KDEDIRS 这个变量包含了一系列用冒号隔开的目录,里面放的是KDE相关的资料。 龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台#id X2EVRI
CONFIG_PROTECT 这个变量包含了一系列用空格隔开的目录,它们在更新的时候会被Portage保护起来。
4_X6G+P"NH0CONFIG_PROTECT_MASK 这个变量包含了一系列用空格隔开的目录,它们在更新的时候不会被Portage保护起来。

@b;v!|k0

.v/T V8GM6S0

g4lo`IZNr0 龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台$Da p2N4i yU

9~sS OaHKp B0PATH:决定了shell将到哪些目录中寻找命令或程序龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台/j0w2q-vC _
HOME:当前用户主目录
q%s ~MU'L o7O0MAIL:是指当前用户的邮件存放目录。龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 T$X%Wpv Vy
SHELL:是指当前用户用的是哪种Shell。龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台!\?/Cq+r(?9Q;H#Y2h
HISTSIZE:是指保存历史命令记录的条数龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台p:[gzq'y0P%t lVx
LOGNAME:是指当前用户的登录名。 龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台$D!k XY cS8~n&q*|
HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台j|'V dCHKI
LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。
c b1QCJoMQ0PS1:是基本提示符,对于root用户是#,对于普通用户是$。
o2Z9h*Z.y3AC0PS2:是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串“Hello,My NewPrompt :) ”。 龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台.p"X;sy!EM
# PS1=" Hello,My NewPrompt :) "
龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台AH%J9i&m ~

3E l"nKq:kQ0 龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台E;j3WWA2i

%{c-^fvT2UZi6{o0 龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台&Nj P1U0B]"FvR

(w,vWD2@ k,s8F]0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台#W!R$M*p y,?'fi c)E

声明:本文档可以随意更改,但必须署名原作者

J&u5Z4E@#L]0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台k] x`~ID

作者:凤凰舞者 qq:578989855

zwSl2G]nK0

TAG: export

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar