一、什么是环境变量
什么是变量?
简单来说就是,以一组文字或符号等,来代替一些设置或者是一串保留的数据。
比如,设置了“myname”就是“honey”,所以当我们读取myname这个变量的时候,系统自然会知道那就是honey。
而环境变量的存在,是因为在Linux中,所有的执行都需要一个执行码,我们在登录Linux后,是以shell来和Linux通信的,才可以真正经由bash来跟系统通信。而在进入shell之前,系统需要一些变量来提供他数据的访问(或者是一些环境的设置参数值),所以就有一些所谓的“环境变量”需要来读入系统中。
例如:PATH、HOME、MAIL、SHELL等,为了区分与自定义变量的不同,环境变量一般以大写字母来表示。
二、变量的显示与设置
1、显示变量:echo
如下:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CO4EjN3UmZxAjN2kDZ3QjNzYzX0UDO0ATM0AzLcFTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
用echo读出变量,只需要在变量前加上$,或者以${变量}的方法。echo还有其他很多功能,读者可以man一下。
2、设置或修改变量
用“=”即可,如下:
未设置时,一个变量名默认为空。
变量的设置规则:
1)、等号两边不能直接接空格符,如下
2)、变量名称只能是英文字母或数字,且第一个字符不能为数字
3)、变量内容若有空格符可使用双引号或者单引号将变量内容结合起来,但是两者有区别
双引号内的特殊字符,可以保持原有的性质;
单引号内的特殊字符,仅为一般字符,即纯文本。
如下,观察两者区别:
4)、可用转义字符“\”将特殊符号变成一般字符
5)、若该变量需要在其他子进程执行,则需要以export来使其变为环境变量。
通常环境变量为大写字符,自行设置变量时可以使用小写字符便于区分。
3、unset--取消变量
如下:
三、关于环境变量
1、env的使用
查看环境变量与常见环境变量说明:
我只放了一部分图,下面解释一下常用的环境变量
HOME:代表用户的主文件夹
SHELL:告知我们目前环境使用的shell,Linux默认使用/bin/bash
HISTSIZE:我们执行过的命令可以被记录下来,而记录的条数则是这个值来设置的
MAIL:当我们使用mail这个命令在收信时系统会去读取的邮件信箱文件
PATH:执行文件查找的路径
LANG:语系数据
RANDOM:随机数的变量,介于0至32767之间
2、set--查看所有变量
这里只放了一部分,set会将bash内的所有变量显示出来。
3、export---将自定义变量转成环境变量
我们知道自定义变量相当于局部变量,环境变量相当于全局变量,若让子进程继续引用父进程的自定义变量,就要将其转化为环境变量。