讲解which命令的时候,我们知道使用的一系列命令其实本质上就是一个个的可执行程序。
比如,cd命令的本体就是:/usr/bin/cd 这个程序文件。
我们是否会有疑问,为何无论当前工作目录在哪里,都能执行:/usr/bin/cd这个程序呢
这就是环境变量的作用啦。
环境变量
是操作系统(Windows、Linux、Mac)在运行的时候,记录的一些关键性信息,用以辅助系统运行。
在Linux系统中执行:env命令即可查看当前系统中记录的环境变量
环境变量是一种KeyValue型结构,即名称和值,如下图:

如左图,图中记录了:
•HOME**:/home/itheima,用户的HOME路径**
•USER**:itheima,当前的操作用户**
•PWD**:当前工作路径**
•......等等一系列信息,用于辅助系统在运行的时候
从环境变量中获取关键信息
在前面提出的问题中,我们说无论当前工作目录是什么,都能执行/usr/bin/cd这个程序,这个就是借助环境变量中:PATH这个项目的值来做到的。

PATH记录了系统执行任何命令的搜索路径,如上图记录了(路径之间以:隔开):
•/usr/local/bin
•/usr/bin
•/usr/local/sbin
•/usr/sbin
•/home/itheima/.local/bin
•/home/itheima/bin
当执行任何命令,都会按照顺序,从上述路径中搜索要执行的程序的本体比如执行cd命令,就从第二个目录/usr/bin中搜索到了cd命令,并执行
**$**符号
在Linux系统中,$符号被用于取"变量"的值。
环境变量记录的信息,除了给操作系统自己使用外,如果我们想要取用,也可以使用。
取得环境变量的值就可以通过语法:$环境变量名 来取得
比如: echo $PATH
就可以取得PATH这个环境变量的值,并通过echo语句输出出来。
又或者:echo ${PATH}ABC
当和其它内容混合在一起的时候,可以通过{}来标注取的变量是谁
自行设置环境变量
Linux环境变量可以用户自行设置,其中分为:
•临时设置,语法:export 变量名=变量值
•永久生效
•针对当前用户生效,配置在当前用户的: ~/.bashrc文件中
•针对所有用户生效,配置在系统的: /etc/profile文件中
•并通过语法:source 配置文件,进行立刻生效,或重新登录FinalShell生效

小结


