🌟目录
- 📝1. 什么是环境变量?
- 📝2. 查看系统的环境变量
- 📝3. 添加环境变量
- 📝4. 环境变量用例
- 5. 命令行参数
好雨知时节
当春乃发生
随风潜入夜
润物细无声
📝1. 什么是环境变量?
环境变量是操作系统中用于存储系统和用户信息的动态命名值。它们可以影响程序的行为和系统的运行方式。环境变量通常包含诸如系统路径、用户目录、配置设置等信息。
例如:在我们编写C/C++程序时,在链接的时候,从来不知道我们的所链接的动静态库在哪里,但链接照样可以成功,生成可执行程序,原因就是有相关的环境变量帮助编译器进行查找。
-
动态性:环境变量可以在程序运行时被修改,适应不同的运行环境。
-
作用域:环境变量可以是全局的(对所有用户和进程可见)或局部的(仅对特定进程可见)。
-
键值对形式:环境变量以键值对的形式存储,如 KEY=VALUE。
-
系统级和用户级:环境变量可以在系统级别配置(影响所有用户)或用户级别配置(仅影响特定用户)。
-
可访问性:程序可以通过系统调用或库函数访问环境变量,通常用于获取配置信息。
-
优先级:同名环境变量可能存在于不同的作用域中,局部变量通常优先于全局变量。
📝2. 查看系统的环境变量
非常简单:
echo $PATH
即可查看到系统的环境变量。其中环境变量路径是以冒号为分隔符。
Tips: which查找路径
📝3. 添加环境变量
export PATH=$PATH:/home/vimer/Test # 冒号后跟需要添加的路径
这里$PATH
代表环境变量里原来的内容,向其后面添加我们要添加的环境变量。
示例:在Test文件夹下,make
生成mytest可执行程序后,通常的运行方法是:./mytest
。当我们把当前文件目录添加到系统的环境吗变量后,我们可以直接在命令行mytest
即可成功执行程序。
因此,把可执行程序,拷贝到系统默认路径下,就让我们可以直接访问的方式——相当于Linux下软件的安装
📝4. 环境变量用例
#include <stdio.h>
int main(int argc,char *argv[],char* envp[]){
//指针数组
for(int i = 0;envp[i];i++){
printf("envp[%d]->%s\n",i,envp[i]);
}
return 0;
}
环境变量本质就是内存级的一张表, 这张表由用户在登陆系统的时候,进行给特定用户形成属于自己的环境变量表。
环境变量中的每一个,都有自己的用途:有的是进行路径查找的,有的是进行身份认证的,有的是进行动态库查找的,有的是用来确认当前路径等等;每一个环境变量都有自己的特定应用场景。
5. 命令行参数
#include <stdio.h>
int main(int argc,char *argv[]){
//指针数组
//存放参数
//for(int i = 0;argv[i];i++){
for(int i = 0;i<argc;i++){
printf("argv[%d]->%s\n",i,argv[i]);
}
return 0;
}
char *argv[]
为指针数组,-a -b -c 都为命令行参数列表选项,argc为表元素个数。
可以看到,o号下表永远代表着可执行程序,argc是 参数个数。