set,env和export命令显示shell变量其区别,与环境变量扫盲

Posted 五六七

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了set,env和export命令显示shell变量其区别,与环境变量扫盲相关的知识,希望对你有一定的参考价值。

种类:

  ? set     :  用来显示本地变量,显示当前shell的变量,包括当前用户的变量
  ? env    :  用来显示环境变量,显示当前用户的变量。
  ? export:  用来显示和设置环境变量, 显示当前导出成用户变量的shell变量

解释:

  ?每个shell有自己特有的变量(set)显示的变量,这个和用户变量是不同的,当前用户变量和你用什么shell无关,不管你用什么shell都在,比如HOME,SHELL等这些变量,但shell自己的变量不同shell是不同的,比如BASH_ARGC, BASH等,这些变量只有set才会显示,是bash特有的,export不加参数的时候,显示哪些变量被导出成了用户变量,因为一个shell自己的变量可以通过export “导出”变成一个用户变量

实例:

[[email protected] ~]# aaa=bbb

[[email protected] ~]# echo $aaa
bbb

[[email protected] ~]# set|grep aaa
aaa=bbb

[[email protected] ~]# env|grep aaa

[[email protected] ~]# export aaa

[[email protected] ~]# env|grep aaa
aaa=bbb

那我们再来科普一下环境变量:

1.什么是环境变量:

2.为什么要使用环境变量?

3.常见的环境变量有哪些?

1.什么是环境变量?

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

  ? 环境变量是一个具有 特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。许多用户(特别是那些刚接触Linux的新手)发现这些变量有些怪异或者难以控制。其 实,这是个误会:通过使用环境变量,你可以很容易的修改一个牵涉到一个或多个应用程序的配置信息。

2.为什么要使用环境变量?

  ?在一些软件在启用是需要先启动启动文件,或者一些配置文件,这样如果配在环境变量里面了系统就能找到这些文件并进行使用了,就相当于我告诉系统我要用的这个东西在哪放着,要用的时候系统就会默认的从这个路径下面去取要用的东西。

3.常见的环境变量有哪些?

  ? PATH 决定了shell将到哪些目录中寻找命令或程序 
  ? HOME 当前用户主目录 
  ◆ HISTSIZE是指保存历史命令记录的条数。

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

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

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

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

  ◆ PS1是基本提示符,对于root用户是#,对于普通用户是$。PS2是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符,比 如下列命令会将提示符修改成字符串“Hello,My NewPrompt  ”。

  ? Classpath设置的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包。





以上是关于set,env和export命令显示shell变量其区别,与环境变量扫盲的主要内容,如果未能解决你的问题,请参考以下文章

shell变量/环境变量和set/env/export用法_转

Unix命令之env的用法

linux下的set、export和env命令,在设置shell的变量时作用一样吗?

SHELL基础知识

x1fn.ifs命令的用途

export命令的使用