linux 下的环境变量的设定很简单,但是很多人对环境变量的原理不是很了解。
环境变量就是系统或软件设置的一些参数。linux 用户登入 shell 之后,shell会自动读取/etc/profile ~/.profile ~/.bashrc /.bash_profile等文件,这些文件中往往有相关的环境变量的设置和初始化。环境表(指向实际name=value字符串的指针数组)和环境字符串通常存放在进程存储空间的顶部(栈之上),因此子进程会继承父进程的环境变量。
关于子进程和父进程的关系如下图所示
- 当我们启动一个 shell 的时候,操作系统会分配一块内存给这个 shell。这块内存的变量可以让当前 shell 和它的子程序访问。
- 如果父程序利用 export(将自定义变量设置程环境变量),可以将自定义的变量写到上述的内存之内。
- 当启动一个子 shell 的时候,它会继承父进程的环境变量。
参考资料http://blog.youkuaiyun.com/trochiluses/article/details/8807654