目录
概念
本质上是字符串变量,只不过变量名都是大写字母。所有环境变量一起用来指定操作系统运行环境下的一些参数。虽然在启动进程的时候环境变量加载在用户区(用户区顶端),但是对于linux同一个用户来说,其环境变量的值通常是相同的。
获取环境变量
#include <stdlib.h>
char *getenv(const char *name);
getenv是C库函数,而不是系统调用,这也能看出来环境变量是加载在用户区的。
配置环境变量
export key=val;
将上边语句加入到.bashrc中,linux系统的开机的时候会加载一次.bashrc文件,使其生效。
直接用export指定在终端配置环境变量的话,当终端退出之后配置就失效了,因此比如要配置到.bashrc文件中,因为linux系统启动时候会执行一遍里边的指令。
常见环境变量
PATH
可执行文件搜索路径。linux中的很多命令比如ls,cat等本质上都是二进制可执行文件,我们在终端使用的时候不需要执行路径,而我们自己编译的二进制可执行程序比如 ./a.out就需要指名文件夹。这是因为ls,cat等文件所在目录 /bin 已经包含在了PATH中,PATH变量可以包含多个路径,中间用 :隔开即可。
SHELL
当前所用的shell命令行解析器,通常SHELL=/bin/bash
HOME
当前用户主目录的路径。
LD_LIBRARY_PATH
动态库路径。