【Linux】环境变量

目录

  • 获取环境变量
    • 相关操作
    • 关于main函数的第三个参数
    • getenv 函数
  • 理解环境变量
  • 环境变量的继承

获取环境变量

相关操作

  • 获取某个环境变量
    echo $(环境变量名)
    如查看用来路径查找的环境变量
    echo $PATH
  • 查看为当前用户定制的环境变量表
    env
  • 添加环境变量
    export PATH=$PATH:(需追加的查找路径)

关于main函数的第三个参数

在这里插入图片描述
其中第三个参数 char * envp[] 就是环境变量表
遍历这张表(最后一个有效位置的下一位是NULL)
for(int i = 0; envp[i]; ++i)
{ printf("%s\n", envp[i]);}

getenv 函数

在这里插入图片描述
测试demo:切换用户、添加至环境变量、运行测试

【Linux】环境变量_第1张图片

理解环境变量

  • 环境变量本质上是内存级的一张表,是在用户登录系统时形成的属于该用户的环境变量表
  • 每个环境变量都有自己的应用场景,有的是进行路径查找、身份认证、动态库查找、确认当前路径等等
  • 表中每个元素都是 kv (键值对)结构的,如图
    在这里插入图片描述
  • 环境变量对应的数据是从系统的相关配置文件中读取到的,用户目录下ls -al查看配置文件
  • 登录时bash从用户配置文件中读取数,load到bash内部,后序进程都与bash有关,bash会将这份环境变量表传递给子进程在这里插入图片描述

环境变量的继承

  • 环境变量具有全局属性,能够被子进程继承,实际上是通过调用 exec 时传环境变量参数实现的
  • 若需在子进程中添加环境变量可以使用 putenv,再主动传入 char ** environ 参数实现

你可能感兴趣的:(linux,bash,运维)