Linux 环境变量详解
基本概念
环境变量(Environment Variables)是一种动态命名值,用于影响操作系统及其运行程序的行为。环境变量可以在系统层面存储信息,使得不同的程序和进程能够共享和访问这些信息。
在安装软件时通常需要配置相应的环境变量,例如安装 Python 时可能需要通过环境变量找到相关工具;在编写 C/C++ 代码链接动态或静态库时,编译器依赖环境变量查找库文件位置。
命令行参数
在认识环境变量之前,先了解命令行参数。C/C++ 程序中 main 函数是入口,它会被调用并接收参数。在 Linux 中,_start 函数作为第一个执行的函数去调用 main 函数。
main 函数的常见签名如下:
#include <stdio.h>
int main(int argc, char *argv[], char *env[]) {
return 0;
}
argc:整数,代表argv中元素的个数。argv:指针数组,指向一个个字符串,即命令行参数。
示例代码:
#include <stdio.h>
int main(int argc, char *argv[], char *env[]) {
for (int i = 0; i < argc; i++) {
printf("argv[%d]: %s\n", i, argv[i]);
}
return 0;
}
运行结果会显示程序名及后续参数。命令行参数本质上是长字符串,执行时被以空格为分隔符切分填入 argv,数组有效元素个数为 argc,且以 NULL 结尾。
命令行参数是由
bash来切分的。
认识环境变量
执行自己的程序通常需要加 ./,而执行系统命令可以直接使用程序名。这是因为系统中存在环境变量,帮助系统找到目标二进制文件。
默认情况下,执行命令不会在当前路径下查找,而是搜索环境变量 PATH 中指定的路径。系统命令通常存放在 /usr/bin/ 目录下,该路径包含在 PATH 变量中。


