Linux中的环境变量
一、环境变量定义
一般是指在操作系统中用来指定操作系统运行环境的一些参数 如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但 是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。 环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性。
二、常见环境变量
PATH:指定命令的搜索路径
HOME:指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)
SHELL:当前Shell,它的值通常是/bin/bash
HISTSIZE:历史操作的1000条命令
PWD:动态变化的环境变量,记录当前所在路径
三、介绍PATH
我们思考这样一个问题:指令也是可执行程序,我们写好的编译好的c语言也是程序,为什么我们在执行c语言程序时要./a.out带上当前路径,而ls这种指令就不要带路径呢?
这就是环境变量PATH的作用,Linux中存在一些全局设置,表明命令行解释器应该去哪个路径下寻找可执行程序。
系统中的很多配置在我们登录Linux时就已经被加载到bash中了,也就是内存。
当然我们也可以把自己写的代码拷贝到PATH中的一条路径下,这样就可以不带路径执行我们写的程序了,sudo cp myprocess /usr/bin 此操作就相当于把我们自己写的程序安装到Linux系统中。
四、环境变量基本操作
env:查看全部环境变量
echo $xxx:查看某个环境变量
export 环境变量名 = 内容:导入环境变量
unset 环境变量名:取消环境变量
若没有export,就不是环境变量,定义的是本地变量,只在bash内部有效,子进程无法继承。
五、在代码中拿到环境变量
(1)示意图

所以environ[]其实是一个二级指针指向env[]这个已经存放了所有环境变量的数组指针。
(2)获取环境变量代码
所以我们就可以通过environ[]或env[]来拿到环境变量




(3)通过环境变量名获取环境变量
用到getenv()函数,头文件#include<stdlib.h>


六、总结
环境变量有系统的全局属性,所以会被子进程继承。
80%命令是bash创建子进程来执行,是普通命令。
20%命令是由bash亲自执行(echo,export),是内建命令。
因为如果export是普通命令,那bash创建子进程运行export,那父进程bash就不会拿到环境变量,因为只有子进程继承父进程,没有父进程继承子进程。
与上文的环境变量做一个总结:bash在启动进程时默认会给子进程两张表,argv[]命令行参数表(由用户输入命令行),env[](操作系统配置文件表)bash通过各种方式交给子进程。
相关文章:
 
Linux中的环境变量
一、环境变量定义 一般是指在操作系统中用来指定操作系统运行环境的一些参数 如:我们在编写C/C代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但 是照样可以链接成功,生成可执行程序,…...
 
关于集成网络变压器的RJ45网口
集成网络变压器的RJ45网口是一种将网络变压器与RJ45接口集成在一起的网络连接解决方案。这种集成设计具有多项优势,使其在现代网络设备中得到广泛应用。 优势与特点 1. **空间节省**:集成设计减少了组件数量和连接线缆长度,有助于节省设备内…...
 
JMX 反序列化漏洞
前言 前段时间看到普元 EOS Platform 爆了这个洞,Apache James,Kafka-UI 都爆了这几个洞,所以决定系统来学习一下这个漏洞点。 JMX 基础 JMX 前置知识 JMX(Java Management Extensions,即 Java 管理扩展࿰…...
 
【Qt】常用控件 Q widget的enabled属性,geometry属性
Qt是一个实现图形化程序的程序。为了便于我们开发,Qt为我们提供了许多“控件”。我们需要熟悉并掌握这些控件的使用。 一.什么是控件 控件是构成⼀个图形化界⾯的基本要素. 示例一: 像上述⽰例一中的,按钮,列表视图,树形视图,单⾏输⼊框,多⾏输⼊框,滚动…...
 
Unity3d开发google chrome的dinosaur游戏
游戏效果 游戏中: 游戏中止: 一、制作参考 如何制作游戏?【15分钟】教会你制作Unity小恐龙游戏!新手15分钟内马上学会!_ unity教学 _ 制作游戏 _ 游戏开发_哔哩哔哩_bilibili 二、图片资源 https://download.csdn.…...
 
【数据分享】2013-2022年我国省市县三级的逐日SO2数据(excel\shp格式\免费获取)
空气质量数据是在我们日常研究中经常使用的数据!之前我们给大家分享了2000——2022年的省市县三级的逐日PM2.5数据和2013-2022年的省市县三级的逐日CO数据(均可查看之前的文章获悉详情)! 本次我们分享的是我国2013——2022年的省…...
 
【玩转C语言】第五讲--->数组-->一维和多维深度理解
🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 引言: 大家好,我是坊钰,为了让大家深入了解C语言,我开创了【玩转C语言系列】,将为大家介绍C语言相关知识…...
 
Apache Flink 任务提交模式
Flink 任务提交模式 Flink可以基于多种模式部署:基于Standalone 部署模式,基于Yarn部署模式,基于Kubernetes部署模式以上不同集群部署模式下提交Flink任务会涉及申请资源,各角色交互过程,不同模式申请资源涉及到的角色…...
 
Ubuntu22.04安装OMNeT++
一、官网地址及安装指南 官网地址:OMNeT Discrete Event Simulator 官网安装指南(V6.0.3):https://doc.omnetpp.org/omnetpp/InstallGuide.pdf 官网下载地址:OMNeT Downloads 旧版本下载地址:OMNeT Old…...
Matlab课程设计——手指静脉识别项目
手指静脉识别项目 项目方案设计介绍 本项目实现手指图像的处理和匹配算法,需要处理的数据是本人不同手指的图像,首先经过图像处理,使得指静脉的纹理增强凸显处理,然后将所有的这些图像进行相互间的匹配,检验类内和类…...
centos软件安装
安装方式 一、二进制安装 --解压即用,只针对特殊平台 --jdk tomcat 二、RPM:按照一定规范安装软件,无法安装依赖的文件 --mysql 三、yum:远程安装基于RPM,把依赖的文件安装上去,需要联网 四、源码安装 jdk安…...
力扣 217. 存在重复元素,389. 找不同,705. 设计哈希集合,3. 无重复字符的最长子串,139. 单词拆分
217. 存在重复元素 题目 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 AC代码 class Solution { public:bool containsDuplicate(vector<int>& nums) {// …...
嵌入式软件工作能力
1. 工作能力 技术能力强,并不代表工作能力 2. 流程把控 3. 项目管理 4. “找茬”能力 5. 文档输出能力...
 
景区导航导览系统:基于AR技术+VR技术的功能效益全面解析
在数字化时代背景下,游客对旅游体验的期望不断提升。游客们更倾向于使用手机作为旅行的贴身助手,不仅因为它能提供实时、精准的导航服务,更在于其融合AR(增强现实)、VR(虚拟现实)等前沿技术&…...
 
Mybatis-Plus代码生成器配置方法
Mybatis-Plus网址:https://baomidou.com/pages/779a6e/#%E4%BD%BF%E7%94%A8 第一步:引入依赖 <!-- 代码生成器 --> <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId>…...
 
三主机部署HP Anyware Manager服务
一、序言 在部署拓扑和方案方面,HP Anyware Manager 非常灵活,可以部署在单个主机中,也可以部署在多个主机中,具体取决于组织的网络环境和运营要求。 二、单主机部署 2.1 描述 此部署配置是当 Anyware Manager 和 MongoDB 以及…...
 
Grafana :利用Explore方式实现多条件查询
背景 日志统一推送到Grafana上管理。所以,有了在Grafana上进行日志搜索的需求,而进行日志搜索通常需要多条件组合。 解决方案 通过Grafana的Explore的方式实现多条件查询。 直接看操作步骤: 在主页搜索框中输入“Explore” 进入这个界面…...
 
腾讯技术创作特训营 -- SUPERWINNIE -- AI重塑社交内容
目录 1 什么是AI社交内容 2 案例拆解 3 用LLM做爆文选题 4 用LLM出爆文脚本提示词 1 什么是AI社交内容 任何一个因素被AI取代都是AI社交内容 2 案例拆解 数字人 资讯素材 录屏产品的素材(小红书测试AI产品) 脚本 素材 剪辑 3 用LLM做爆文选题 &…...
 
AV1技术学习: Compound Prediction
一、双向 Compound Prediction AV1支持两个参考帧的预测通过多种复合模式线性组合。复合预测公式为 其中,权重m(x, y) is scaled by 64 以进行整数计算,R1(x, y)和R2(x, y)表示两个参考块中位于(x, y)的像素。P(x, y)将按比例缩小 1/64 以形成最终的预测…...
watch监听vue2与vue3的写法
watch的属性值 handler:回调函数, 即监听到变化时应该执行的函数,可以是单独的函数或带有 immediate 和 deep 属性的对象watch: {someProperty: function(newVal, oldVal) {// 处理逻辑}}deep: 其值是true或false, 当属性值是对象或数组时,深度观察会监…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
 
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
 
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
 
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
 
【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
