一、基本概念
🖊环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数。如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。其实,说白了环境变量就是全局设置好的变量,方便我们后续程序的执行。
🖊环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性。
在Windows下我们是有环境变量的:
那么Linux下,我们的环境变量又是什么形式呢?
Linux下的常见的环境变量有:
🖊PATH: 指定命令的搜索路径
🖊HOME:指定用户的主工作目录(即用户登录到Linux系统中时默认的目录)
🖊SHELL:当前Shell,它的值通常是/bin/bash
查看环境变量的方法: echo $NAME //NAME:你的环境变量名称
ⅠPATH
可能还是有点抽象,在Linux下我举个例子,比如我们要执行一个程序(指令),要先找到这个程序,比如./myprocess --> ./当前路径 ->找到程序。需要./可执行程序。而Linux下其实一个一个指令就是一个一个可执行程序,那么系统在执行指令的时候为什么不需要加./ 呢?这是因为系统配备了全局环境变量,它会默认去自动去查找。
那我也不想加./怎么办呢?有两种办法:
①把我们的可执行程序拷贝到系统 /usr/bin/中
/usr/bin/是系统安装指令的路径
但是不敢这么做,因为我们写的没有经过测试,会污染系统指令词。
②配置环境变量
🖊PATH: 指定命令的搜索路径。
我们通过echo $...
可以查看环境变量PATH
这些是什么意思呢?冒号分割的这些都是目录,这些目录就是系统配备的,系统在执行指令会默认到冒号间隔的每一个目录下去检索搜索指令,存在的话就找到执行。
系统指令能执行,是因为指令都在/usr/bin/目录下。
既然如此我们只要把我们的路径添加到这些环境里面就可以了。我们需要用到export指令。
错误使用:
这种做法会覆盖环境变量。
正确使用:
export PATH=$PATH 先把我们的环境变量导入, 冒号:用于 分割 要添加的路径:/home/Gyh/lesson10,此时就添加进了。
当然,我们可以查看Linux下的系统环境变量还有哪些:
那么在Windows下
这些比较多,而且我们看不懂,我们来看一下系统提供的一些需要我们管着环境变量:
HISTSIZE表示我们最多能查看的历史命令条数,我们能通过history指令再来具体查看我们历史使用了哪些指令:
env能查看当前目录下的环境变量:
Ⅱ getenv函数
我们之前了解到echo $环境变量可以在命令行查看环境变量,那么我们在程序中如果想查看环境变量是如何做到呢?这里提供了一个getenv函数来查看环境变量。
我们通过man手册来查看这个函数:
//头文件 #include<stdlib.h> char* getenv(const char* name); //返回值 char* //参数:已经存在的环境变量名称
对于已经存在的环境变量,我们输入字符串名称便可以查询其内容: