由浅入深的了解进程(5)--环境变量

news2024/9/22 17:21:04

环境变量

  • 前言
  • 环境变量
    • 1、更多的环境变量及添加和删除
    • 2、整体理解环境变量系统

前言

在上一篇文章中简单的介绍了环境变量,但是没有讲述的比较全面了,所以现在再写一篇来介绍环境变量。

环境变量

在上一篇文章中,我们已经简单的学习了如何进行对于环境变量的修改并且能够知道环境变量在家目录的文件中修改才能够保证每一次的登录都是保存了我们自己添加的路径的。

1、更多的环境变量及添加和删除

env:查看所有的环境变量
echo $HOME:家目录的环境变量
echo $PWD:当前目录的环境变量
echo $SHELL:命令行解释器
echo $HISTSIZE:表示的是操作系统会记住用户最新的多少条指令

那我们能不能直接自己定义一个环境变量呢?

export THIS_IS_MY_PATH=(自己的地址)

在这里插入图片描述
此时的添加也是内存级别的,所以说重新登陆的话,就不能看到我们这次的操作了。
那导入有了,怎么删除?

unset THIS_IS_MYPATH:删除环境变量

如果不用export的话,直接设置的话,这就不算是环境变量,只能说是一个本地的变量。
在这里插入图片描述

2、整体理解环境变量系统

在这里插入图片描述


这就展示了,我们能够通过C/C++的代码的方式获得环境变量。所以根据上一章写过的在运行程序之前会有bash的命令执行的话,说明环境变量默认也是可以被子进程拿到的。环境变量默认存在的就是在bash内部(不过我们还没说能够被子进程修改从父进程那得到的数据)。
那环境变量的话在bash中是怎么管理的?
把环境变量存在指针数组之中!所以我们刚刚的程序能够得到所有的环境变量。此时的这个指针数组的最后一个位置也必须要是NULL。
所以现在bash进程启动的时候,默认会生成两个表,argv[]命令行参数表,env[]环境变量表,bash通过各种方式交予进程。
命令行参数表是用户在执行可执行文件输入命令行得到的,环境变量表是从OS的配置文件中得到的。
相信上面其中的environ二级指针的含义应该也是能够理解的了,因为environ中的每一个元素都得是一个字符串,但是C语言中没有string的含义,所以每个字符串,只能够用char*的指针来表示,那数组值中存储的每一个元素都是指针,那指向这个数组的指针的话,那也必须要用到二级指针了啊。要么就直接是指针数组直接表示这个环境变量表。
那我们除了这种方式能够实现环境变量的传入,那我们还能够怎么实现呢?其实第二种实现的的方式就是通过main函数传参,原理其实也相似于命令行参数的原理。
在这里插入图片描述在这里插入图片描述
环境变量本身具有系统级别的全局属性,因为环境变量本身能够被子进程继承下去。

getenv:单个获取环境变量的内容
//获取成功的话为非0,获取失败的话等于NULL

在这里插入图片描述
在这里插入图片描述
总结: 获得环境变量的三种方式。
1、extern char **environ
2、通过main函数参数
3、getenv(“path”)

可是我们上面使用的extern添加path的时候难道不也是bash下创建的一个子进程吗?那子进程的数据这么能够给到bash父进程呢?
因为export,echo的一些命令,这些命令叫做内建命令(80%的命令都是bash创建子进程进行的,但是剩下的一些就是由bash亲自进行的)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1973960.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“网络身份证”来了,淘宝、微信、小红书等已上线试点版功能

“网络身份证时代”即将开启。 近日,公安部、国家网信办共同起草《国家网络身份认证公共服务管理办法(征求意见稿)》公开征求意见后,未来是否需要“持证上网”一时间引发热议。而在征求意见的期间,小红书、淘宝、微信等…

linux-环境变量,进程地址空间

1.环境变量 1.1基本概念 环境变量 (environment variables) 一般是指在操作系统中用来指定操作系统运行环境的一些参数 如:我们在编写 C/C 代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但 是照样可以链接…

Stable Diffusion绘画 | 文生图设置详解—随机种子数(Seed)

随机种子数(Seed) Midjourney 也有同样的概念,通过 --seed 种子数值 来使用。 每次操作「生成」所得到的图片,都会随机分配一个 seed值,数值不同,生成的画面就会不同。 默认值为 -1:每次随机分…

速度规划之:起点速度和终点速度不为零的非对称梯形速度规划

起点速度和终点速度不为零的非对称梯形速度规划 一、引言二、理论基础1. 梯形速度规划概述2.数学建模- 变量定义- 约束关系- 公式推导 三、计算过程1.只存在减速段2.只存在加速段3.存在加速段和减速段4.存在加速度段、匀速段和减速段 四、仿真实现五、优缺点优点缺点 六、总结 …

电销外呼系统是如何实现高效触客?

首先我们都有个疑问? 什么是外呼系统,有什么用处 简单来说就是解决打电话高频封号问题,提升销售工作效率,搞笑筛选一线客户 沃创云电销外呼系统通过一系列智能化、自动化的功能和技术手段,实现了高效触客。以下是该系…

MySQL数据库学习笔记

1、数据库的相关概念 数据库是存储数据的仓库,数据是有组织的进行存储 (DataBase)DB. 数据库管理系统:操作和管理数据库的大型软件 DataBase Mangement System(DBMS) SQL 操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准。 1、Oracle 2、MySQL 3…

LLC数字控制TMS320F28034,3-DSP的timer定时器配置介绍

***配套代码工程*** LLC数字控制TMS320F28034,3-DSP的timer定时器配置介绍 LLC数字控制TMS320F28034,3-DSP的timer定时器配置介绍1 TMS320F280341.1 系统时钟大小1.2 TMS320F28034 芯片系统时钟源介绍 2 时钟库函数说明示例3 TMS320F28034手写定时器功能…

武汉流星汇聚:亚马逊平台消费者众多,助力中国卖家销售额大幅增长

在全球电商的浩瀚星空中,亚马逊凭借其庞大的消费者规模和强大的市场影响力,为无数商家特别是中国卖家提供了前所未有的发展机遇。近年来,越来越多的中国卖家选择通过亚马逊平台,将优质产品直接送达全球消费者的手中,并…

【系统架构设计师】二十三、通信系统架构设计理论与实践②

目录 二、5G 网络边缘计算 三、存储网络架构 四、软件定义网络架构 五、网络构建关键技术 5.1 网络的高可用性 5.2 IPv4 与 IPv6 融合组网技术 六、网络构建和设计方法 6.1 网络需求分析 6.2 网络技术遴选及设计 6.3 层次化网络模型设计 6.4 网络安全控制技术 6.5 …

基于Gromacs的蛋白质与小分子配体相互作用模拟教程

在生命科学的广阔领域中,蛋白质与小分子配体之间的相互作用扮演着至关重要的角色。这些相互作用不仅影响着生物体内的各种生命活动,如信号传导、代谢调控和药物作用等,同时也是药物设计和开发的核心内容。因此,深入理解并模拟这些…

模板进阶【C++】

文章目录 模板的特殊化函数模板特化的作用 函数模板的的特殊化语法:函数模板特化的要求 类模板的特殊化类模板的特殊化的要求类模板的特殊化的语法全特化偏特化实例化部分模板参数对基本类模板(母板)的模板参数进行限制 非类型模板参数非类型…

ESP32低功耗蓝牙服务端的库介绍和实例演示

ESP32低功耗蓝牙服务端的库介绍和实例演示 1.概述 前面的文章介绍了经典蓝牙库和使用示例,这篇文章介绍低功耗蓝牙库的使用。 这篇文章不介绍低功耗蓝牙实现的架构知识,只介绍 如何使用它的库文件实现应用开发只介绍服务端蓝牙开发方式 2.低功耗蓝牙…

R语言大尺度空间数据分析模拟预测及可视化:地统计与空间自相关、空间数据插值、机器学习空间预测、空间升降尺度、空间模拟残差订正、空间制图等

目录 专题一 R语言空间数据介绍及数据挖掘关键技术 专题二 R语言空间数据高级处理技术 专题三 R语言多维时空数据处理技术、数据清洗整合和时间序列分析 专题四 R语言地统计与空间自相关、空间插值方法 专题五 R语言机器学习与空间模型预测及不确定性评估 专题六 R语言空…

htsjdk库ReferenceSequenceFile接口介绍

ReferenceSequenceFile 是 HTSJDK 库中的一个接口,用于表示参考基因组文件。它定义了读取参考基因组序列的标准方法。这个接口使得不同类型的参考基因组文件(如 FASTA 格式)能够以统一的方式进行访问。 ReferenceSequenceFile 接口主要功能 访问参考序列: 提供获取参考基因…

如何在 Windows/Mac/iPhone/Android 上将 PDF 转换为 Word

PDF(便携式文档格式)是一种流行的格式,广泛用于在数字电子设备中呈现文档。输出文件小且兼容性强,使 PDF 如此受欢迎。但是,编辑 PDF 文件并非免费。您无需购买 PDF 编辑器,而是可以将 PDF 转换为 Word 进行…

嘉兴网站建设的思路

随着互联网的快速发展,网站已经成为企业宣传和推广的重要工具。作为浙江省的一个重要城市,嘉兴具有得天独厚的地理位置和经济实力,因此开展嘉兴网站建设具有重要意义。在进行网站建设的过程中,需要有一定的思路和规划,…

跑深度学习模型Ⅱ:一文安装正确pytorch及dgl

如果要用到GPU ,先看这篇安装并保证cuda可用。跑深度学习模型I:一文正确使用CUDA-CSDN博客 啊每次都是pytorch版本问题引发的一系列错误! 1. 查看自己的cuda版本 nvcc --version 可以看到我的cuda版本是11.8 nvidia-smi 查看NVIDIA驱动版…

智能变“智障”?云鲸扫地机器人频发故障引质疑

近年来,扫地机器人市场以其智能化技术革新和不断升级的产品功能,成功吸引了消费者的目光,甚至打破了家电行业的价格僵局,实现了价格与价值的双重攀升。然而,在这股智能家电的浪潮中,云鲸扫地机器人却因其频…

【C++从小白到大牛】栈和队列(优先级队列)

目录 引言: 使用方法篇: stack: queue priority_queue 使用方法: 模拟实现篇: stack: 原码: queue 原码: priority_queue 插入和删除数据的思想: 仿函数实…

TDEngine(taos) 涛思数据库-sql初识

一、基本使用 这里读者自行安装数据库&#xff1a;使用安装包立即开始 | TDengine 文档 | 涛思数据 (taosdata.com) // 下载gz文件&#xff0c;解压 tar -zxvf TDengine-server-<对应版本>-Linux-x64.tar.gz// 解压后启动 sudo ./install.sh 启动成功后&#xff0c;直…