一篇文章让你彻底搞懂环境变量

一、什么是环境变量

环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数。

二、常见环境变量

2.1 HOME变量
查看家目录

2.2 USER
作用 : 用于身份验证

2.3 PATH
作用 : 包含程序指定运行的路径,指定操作系统需要使用到的可执行程序的位置。这样也解答了刚刚接触Linux时所带来的疑惑。
思考 : 接触./a.out ls cd 等命令的时候,是否有这样的疑问,在使用ls指令查看该目录下的子目录和文件时候为什么输个ls 后面加选项就能查看了,而自己运行程序需要./a.out或者是在学C语言的时候,为什么输入#include<stdio.h> 就能够调用该库的函数,如printf scanf。其实这背后就是由环境变量搞定。操作系统按照路径顺序依次查找。
证明 : 用which 查看ls命令便不难看出来操作系统是通过PATH搜索路径来确定ls命令,从而简化操作,不需要用户在前面加上路径
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


三、相关指令

3.1 查看环境变量
1、查看单个环境变量 : echo $name
在这里插入图片描述

2、查看全部环境变量 : env
在这里插入图片描述

3.2 设置环境变量
1、修改已有环境变量
以将自己写的程序变成类似ls指令。
正常的方式:
在这里插入图片描述

1、export PATH=$PATH:路径 能够将其加入环境变量当中。
在这里插入图片描述
2、是将程序放到路径当中的其他文件路径中(不推荐)
在这里插入图片描述
在这里插入图片描述

3.3 添加环境变量
1、添加本地变量:
变量名=变量名(变量与等号之间不能有空格,不然会被bash判定为是命令 出现command not found的报错)

在这里插入图片描述

2、添加环境变量:export 环境变量名=要给的值

例如
在这里插入图片描述


三、在代码里获取环境变量

3.1 通过envp数组获取:
在这里插入图片描述
在这里插入图片描述
3.2 通过全局变量environ获取:
在这里插入图片描述

在这里插入图片描述

3.3 调用函数getenv():

在这里插入图片描述

在这里插入图片描述


四、本质

那么这时候环境变量究竟是什么呢。其实环境变量是char* envp[]。bash根据配置文件,在用户登录后,针对不同用户形成特定的环境变量表且由bash来进行维护的。是能够被子进程继承的.因此环境变量是有全局属性的 而本地变量也是在bash中,但是没有添加到envp数组,无法被子进程继承。因此也说明了export的功能是将变量添加到bash中的envp数组z中。


五、命令行参数

5.1 什么是命令行参数:是给main函数传递不同的参数使之执行不同的功能。为指针数组且argv[0]为可执行程序,其他为参数选项。
在这里插入图片描述

在这里插入图片描述

5.2 运用命令行参数

在这里插入图片描述

在这里插入图片描述

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值