• Linux:环境变量


    基本概念

    环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数。
    环境变量通常具有某些特殊用途,通常具有全局特性,可以被子进程继承下去

    常见的环境变量

    PATH : 指定命令的搜索路径
    HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)
    SHELL : 当前Shell,它的值通常是/bin/bash。

    环境变量的相关命令

    1. echo: 显示某个环境变量值
    2. export: 设置一个新的环境变量
    3. env: 显示所有环境变量
    4. unset: 清除环境变量
    5. set: 显示本地定义的shell变量和环境变量

    在这里插入图片描述
    通过env查看所有环境变量:
    在这里插入图片描述
    **为什么有些指令可以直接执行,不需要带路径,而我们的二进制程序需要带路径才能执行,以ls为例,在shell输入ls时,首先它会从PATH环境变量中查找,
    在这里插入图片描述
    它会在这些路径下去寻找ls程序,按照路径找到的第一个ls程序就会被执行。首先要知道的是,执行一条命令诸如mv,cp,本质上也是运行一个程序。
    我自己写的程序必须要加./才能执行,./指明编译器在当前目录寻找hello程序。
    在这里插入图片描述
    可以将我们的程序所在路径加入环境变量PATH当中在这里插入图片描述
    另一个新增环境变量的指令:export [环境变量名称] =$[环境变量名称]:[新增的环境变量],上面这些都是临时修改、只在当前终端有效。

    获取环境变量

    每个程序都会收到一张环境表,环境表是一个字符指针数组(char* env[]),每个指针指向一个以’\0’结尾的环境字符串。

    1. main函数:命令行的第三个参数。
      在这里插入图片描述

    在这里插入图片描述
    2. 通过第三方变量environ获取

    在这里插入图片描述
    libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头文件中,所以在使用时 要用extern声明。

    系统也给了我们getenv和putenv来获取或设置环境变量

    #include 
    #include 
    int main()
    {
    	printf("%s\n", getenv("PATH"));
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    强化学习:玩转Atari-Pong游戏
    Django之同时新增数据到两个数据库表与同时返回两个表的数据(插拔式)
    arm安全指令
    Docker 安装 Nginx
    【第28天】给定一个字符串S,请你判断它是否为回文字符串 | 回文的判断
    文件上传漏洞靶场分析 UPLOAD_LABS
    SpringCloud | 单体商城项目拆分(微服务)
    链表的边界
    【网络编程】- 背景知识
    上周热点回顾(6.6-6.12)
  • 原文地址:https://blog.csdn.net/ll1175555/article/details/127641384