Linux Shell全局/局部环境变量、PATH、启动脚本与数组变量
一、环境变量相关知识
1. Linux系统依靠环境变量保存系统运行过程中的各类环境信息,Shell环境变量可以划分为局部环境变量与全局环境变量两大类。局部环境变量的作用域仅限于当前开启的Shell会话,只能在当前终端进程内访问,由当前Shell创建的子Shell进程无法读取到局部变量;全局环境变量也叫导出型环境变量,局部变量经过导出声明之后就升级为全局环境变量,不仅当前Shell可以使用,由当前Shell创建出来的所有子Shell进程都能够继承并读取这个变量。系统提供了不同命令用来区分查看局部变量、全局环境变量,也可以使用命令对已经定义完成的变量进行删除操作。
2. 用户可以根据自身需求创建属于自己的局部环境变量和全局环境变量,按照生效周期可以分为临时变量和永久变量。临时自定义变量仅在当前终端会话中有效,一旦终端关闭或者开启新的会话,变量就会消失;如果希望自定义变量长期有效,就需要把变量的定义语句写入Shell启动配置文件中,实现每次打开终端自动加载变量。
3. PATH是Linux系统中最为关键的环境变量,它专门用来定义bash shell检索可执行命令时的目录查找顺序。PATH内部由多个目录地址组成,不同目录之间使用冒号进行分隔。当我们在终端输入一条命令按下回车后,bash会按照PATH记录的目录顺序逐个查找对应的可执行程序,如果在某个目录找到目标程序就直接运行;如果遍历完所有目录都没有找到对应的可执行文件,终端就会提示命令未找到。用户可以根据自身需求临时修改PATH变量,也可以通过配置文件永久追加自定义脚本目录到PATH中。
4. bash shell在启动交互式终端会话时,会自动依次读取并执行一系列专属的启动文件,其中 ~/.bashrc 是针对单个普通用户最常用的启动配置文件,每次打开一个全新的bash终端窗口时系统都会自动加载此文件。我们可以把自定义环境变量、命令别名等配置写入这个启动文件,这样每一次开启新的bash会话,系统都会自动加载我们预设好的环境变量。直接修改启动文件之后,新的配置不会立刻在当前终端生效,有两种解决方式:一是关闭当前终端重新登录开启新会话,二是使用配置加载命令让当前终端立刻读取更新后的配置内容。
二、数组变量相关知识
bash shell支持数组变量,Shell中默认使用一维数组,数组元素的下标从数字0开始计数。我们可以一次性声明并初始化包含多个元素的数组,也可以单独利用下标为数组某一个位置赋值。在使用数组时,既可以根据下标单独读取数组里某一个指定元素,也可以一次性取出数组内部所有的元素;同时还可以获取数组中存储元素的总个数。除此之外,我们可以结合循环结构,依次取出数组中的每一个元素进行遍历处理,实现批量操作数组数据,满足Shell脚本中批量存储和处理一组同类数据的需求。
