Linux 之 Bash -- shell 的变量功能(二)

2019-04-25  本文已影响0人  熊猫人和熊猫猫

由于这部分的内容有点多,挤在一篇文章里不容易理清思路,长篇幅也容易使人倦怠,那么猫毛就把它切分成小的知识块,咱们就从这些细碎的小文章中,一点点成长吧~

1.环境变量的功能

1.1 常见的环境变量

在命令行内输入 “env”,就可以查看目前shell环境下的所有环境变量与其内容。猫毛充分利用了MAC笔记本的Terminal,利用它来练手BASH了:


环境变量

1.2 环境变量与自定义变量

👆我们通过env可以获取当前的环境变量信息,除了环境变量,bash还有一些与bash操作接口有关的变量,以及用户自己定义的变量(还记得上一节提到的“变量设定”吗?设定变量就是在自定义变量啊~)
如果我们想查看当前shell的所有变量信息,仅仅通过“env”获取环境变量就不能满足我们的“好奇心”了,那就要通过“set”来观察了。
命令行中输入set后,屏幕里密密麻麻就出现了一大堆符号,还是拿鸟哥里面的图片来做解释吧:

变量
一般来说,不论是环境变量还是与shell操作接口 相关的变量,通常都设定为大写字符。基本上,在Linux预设的情况下,使用{大写的字母}来设定的变量为系统内定需要的变量。这也是为什么我们上一节在学习“变量设定”时,鼓励大家使用小写字母来设定自定义变量的原因,讲几个其中比较重要的变量吧。

1.3 自定义变量转成环境变量 (export)

当你登入Linux并取得一个bash之后,你的bash就是一个独立的程序,这个程序的识别使用的是一个称为程序标识符的东西,也就是PID。接下来你在这个bash底下所下达的任何指令都是由这个bash所衍生出来的,那些被下达的指令就被称为子程序了。
子程序仅会继承父程序的环境变量,子程序不会继承父程序的自定义变量,所以需要 export 变量名称,将自定义变量转成环境变量。

1.3 语系变量

我们的Linux到底支持了多少语系?可以使用"locale"这个命令来查询:


用locale查询语系变量

为什么我们在查询某个数据的说明文件的时候,有时候会出现乱码,这可能是由于我们使用的语系不同而产生的,可以看到上图👆,猫毛的mac自带bash的语系变量有很多,但是实际上,我们只需要设定"LANG"和“LC_ALL”就好了。(语系文件都放置在 user/lib/locale/目录中)

1.4 变量的有效范围

自定义变量是有使用范围的:自定义变量只能存在于指定子程序中,其他子程序和父程序是不可以引用的。
可以这么理解:
环境变量=全局变量 global variable
自定义变量=局部变量 local variable
但是,export这个指令,可以使“自定义变量” 转变为 “环境变量”。环境变量是可以被父程序和其他子程序引用的。

1.5 理解几个与变量相关的命令

简单理解一下吧,我觉得应用并非很广泛

bash环境中的数值运算,预设最多仅能到达整数形态
eg: 6/5结果是1

(2) 其他几个参数的应用

鸟哥总结的很好,直接上鸟哥的图吧


declare 参数的使用示例

1.6 数组(array)变量类型

这里只要了解一下数组这个变量就可以了
var[index]=content
var -- 数组名
index -- 数字代号(需要[ ]设定)
content -- 对应内容

了解数组

2. 文件系统及程序的限制关系

了解 ulimit 命令可以限制用户的某些系统资源 就可以了

ulimit的使用
ulimit的使用
上一篇 下一篇

猜你喜欢

热点阅读