环境变量
在 Linux 中,环境变量本质上是进程在启动时继承的一组 key=value 字符串,它们不是系统全局状态,而是隶属于进程本身:父进程创建子进程时会把自己已 export 的变量拷贝给子进程,但进程之间彼此不可见。环境变量在内存中以 envp[] 的形式存在,本质就是字符串数组;export 的作用是把 shell 变量标记为“可继承”,使其在 fork + exec 后仍然可见。变量的作用域有三种常见形态:仅对单条命令生效(如 VAR=1 ./app)、对当前 shell 会话生效(export VAR=1)、或写入配置文件(如 ~/.bashrc、/etc/profile)实现长期生效。PATH 决定 shell 查找可执行文件的目录顺序,LD_LIBRARY_PATH 影响动态链接库的搜索路径;配置未生效往往是因为当前 shell 未 source 配置文件,或使用 sudo 时环境变量未被继承。对程序员而言,环境变量是进程启动时的一次性上下文,C/C++ 可通过 getenv 读取,exec 默认会保留环境变量(除非显式传新 envp),理解这一点能解释“rm 后文件仍可写”“动态库找不到”“配置为什么没生效”等常见现象。
常见环境变量示例:
• PATH:可执行文件搜索路径
• HOME:用户主目录
• USER:当前用户名
• PWD:当前工作目录
• SHELL:当前使用的 shell
• LANG / LC_ALL:语言与编码设置
• LD_LIBRARY_PATH:动态库搜索路径

浙公网安备 33010602011771号