欢迎来到Linux进程概念的第四篇!本篇我们将深入探讨环境变量——这个每个Linux用户都会接触但又常常感到模糊的概念。无论你是刚入门的小白,还是想巩固基础的老手,本文都会用最通俗的语言和实例带你彻底搞懂环境变量。
环境变量是操作系统用来指定运行环境的一些参数,本质上是一个键值对(Key-Value)。它存储了系统或用户级别的配置信息,比如命令搜索路径、当前用户的家目录、终端类型等。每个进程在创建时都会继承其父进程的环境变量,因此它们影响着程序的行为和运行方式。
举个例子,当你在终端输入ls时,系统怎么知道ls命令在哪里?这全靠PATH环境变量告诉shell去哪些目录寻找可执行文件。
Linux下查看环境变量的命令非常多,最常用的是printenv和env。直接输入printenv会列出所有当前shell的环境变量。
$ printenvSHELL=/bin/bashHOME=/home/userUSER=userPATH=/usr/local/bin:/usr/bin:/bin:/usr/games... 如果你只想看某个特定的变量,比如PATH,可以使用echo $PATH。注意$符号用来引用变量值。
:分隔。cd ~就是靠它。环境变量分为临时设置和永久设置。临时设置只在当前shell有效,使用export命令:
$ export MY_VAR="hello world"$ echo $MY_VARhello world 如果想永久生效,可以将export语句写入shell的配置文件中,比如~/.bashrc(针对bash)。修改后执行source ~/.bashrc或重新登录即可。
在shell中,直接定义的变量(如var=123)是局部变量,它不会被子进程继承。而通过export导出的变量就变成了环境变量,会传递给当前shell启动的任何子进程。这正是进程继承的核心:子进程会复制一份父进程的环境变量表。
你可以用一个小实验验证:定义VAR1=111,然后bash进入子shell,echo $VAR1输出为空;如果先export VAR1再进入子shell,就能看到值。
Linux进程的环境变量不仅限于shell,任何程序都能访问。C语言提供了三个主要方法:
getenv():获取指定环境变量的值。setenv() / putenv():设置或修改环境变量。environ全局变量:指向环境变量字符串数组的指针。下面是一个简单的C程序,打印所有环境变量:
#include extern char **environ;int main() { char **env = environ; while (*env) { printf("%s", *env); env++; } return 0;} 假设你写了一个自己的脚本myscript.sh放在/home/user/bin目录,希望能在任何地方直接运行它。你可以临时添加:
$ export PATH=$PATH:/home/user/bin 这样PATH变量就新增了搜索路径。永久添加则写入~/.bashrc。
环境变量是Linux进程不可或缺的一部分,它传递配置信息,控制程序行为。掌握环境变量、PATH、export以及进程继承机制,能让你更深入地理解Linux系统。希望本文能帮你打下坚实基础,继续探索Linux的奇妙世界!
本文关键词:环境变量、PATH、export、进程继承
本文由主机测评网于2026-03-15发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:http://www.vpshk.cn/20260331370.html