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 “导出”变成一个用户变量
实例:
[root@linux ~]# aaa=bbb
[root@linux ~]# echo $aaa
bbb
[root@linux ~]# set|grep aaa
aaa=bbb
[root@linux ~]# env|grep aaa
[root@linux ~]# export aaa
[root@linux ~]# 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程序所需要的类或者包。