概述
环境变量:
环境变量:
环境变量是用来定义系统运行环境的一些参数,比如说; 每一个用户的家目录, echo $HOME, 还有我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。
- 常见的环境变量:
HOME(环境变量名称): 保存用户家目录的环境变量(指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)
SHELL: 保存当前使用的命令行解释器的名称,它的值通常是/bin/bash
PATH: 保存可执行程序的路径的环境变量(指定命令的搜索路径)
LD_LIBRARY_PATH: 程序运行时, 依赖库文件的搜索路径的环境变量, 动态库环境变量名称
CPLUS_INCLUDE_PATH: 可以定义第三方C++头文件所在路径的环境变量
- 常见命令:
echo $[环境变量名称]: 可以查看某一个环境变量的值(内容)
env: 查看当前操作系统当中环境变量的名称和环境变量的值
export: 可以更改或者增加环境变量(但是他的效果只是暂时的 关闭掉当前窗口后 就没作用了)
命令行当中直接运行, 则是临时生效
export[环境变量名称] = $[环境变量名称]:[新加的环境变量的值]
export PATH=$PATH:现在的路径
export PATH=现在的路径 (会让其他的命令失效, 但是关闭掉当前窗口后 新开一个 又可以用了)
($HOME就是/home/Angelay2)
永久生效:(直接将更改的环境变量内容写入系统环境变量文件中, 每次重新打开一个终端时, 操作系统就会帮助我们加载环境变量文件, 从而更改的环境变量内容也被加载到系统环境变量当中去了)
1. 需要先去了解环境变量配置文件名称
普通用户而言: 有自己的环境变量 并且还受系统的环境变量影响
用户环境变量 = 系统环境变量 + 用户自定义的环境变量
2. 系统的环境变量文件:
/etc/bashrc
3. 当前用户的环境变量文件:
~/.bashrc
~/.bash_profile
使环境变量当中的值生效:
1. source [更改的环境变量文件] ==> 原理: 重新加载这个环境变量文件
(如改了环境变量文件之后 通过source ~/.bash_profile 来重新加载当前所改动环境变量文件(刷新) 就可以永久生效了)
2. 重新打开一个新的终端 也会重新加载所有的环境变量文件
注: 环境变量名称一般都是大写
- 通过代码获取环境变量
main() ---> 内核当中的函数调用
main(int argc, char* argv[], char* env[])
char* env[] --> (所有环境变量值放到一个数组中 最后一个是以NULL结束的,)
结构体task_struct中的内存指针指向进程的虚拟地址空间 对于32位系统, 地址空间是4G(2^32), 有1G的空间是被内核空间占用, 接下来是命令行参数&环境变量区, 接下来依次是栈 堆 数据段 代码段
0xffff ffff(高地址) --1G--> 0xC000 0000(内核空间的尾地址) --3G--> 0x0000 0000(低地址)
内核调用main函数, 在内核中创建task_struct这个结构体时 就已经把所有的命令行参数&环境变量都已经写好了 (至于你要不要 我都有), 同样有一个函数来调用main函数
_START_MAINxxxx (内核代码)
{
main();
}
环境变量通常是具有全局属性, 可以被子进程继承下去
最后
以上就是跳跃花瓣为你收集整理的环境变量知识点的全部内容,希望文章能够帮你解决环境变量知识点所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复