我是靠谱客的博主 跳跃花瓣,最近开发中收集的这篇文章主要介绍环境变量知识点,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

环境变量:

环境变量:
环境变量是用来定义系统运行环境的一些参数,比如说; 每一个用户的家目录, 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();
   		}

环境变量通常是具有全局属性, 可以被子进程继承下去

最后

以上就是跳跃花瓣为你收集整理的环境变量知识点的全部内容,希望文章能够帮你解决环境变量知识点所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部