环境变量 ─── linux第14课
本内容为总结:
1. 环境变量本质是配置信息, 在系统配置时起效 .
2. 环境变量具有全局性(子进程可以继承父进程的环境信息,不能继承本地变量)
3. 进程具有独立性 ,环境变量可以进程间传递信息(只读信息)
环境变量
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数
如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。
环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性
环境变量: 系统提供的具有全局属性的变量 (环境变量可以被bash进程之后全部的进程继承)
常见环境变量
- PATH : 指定命令的搜索路径
- HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)
- SHELL : 当前Shell版本,它的值通常是/bin/bash。
查看环境变量方法
echo $name //name: 你的环境变量的名称
测试HOME
1. 用root和普通用户,分别执行 echo $HOME , 对比差异 .
执行 cd ~; pwd , 对应 ~ 和 HOME 的关系
HOME:当前用户的家目录
和环境变量相关的命令
1. echo: 显示某个环境变量值
2. export: 设置一个新的环境变量
3. env: 显示所有环境变量
4. unset: 清除环境变量
5. set: 显示本地定义的shell变量和环境变量
环境变量的组织方式

每个程序都会收到一张环境表,环境表是一个字符指针数组,每个指针指向一个以’\0’结尾的环境字符串
通过代码如何获取环境变量
方法一: 通过命令行第三个参数
1 #include<stdio.h>2 3 4 int main(int argc, char* argv[] ,char* env[])5 {6 int i=0;7 for(;env[i];i++)8 {9 printf("%s\n",env[i]);10 }11 return 0;12 }
方法二: 通过第三方变量environ获取
libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头文件中,所以在使用时 要用extern声明。
#include <stdio.h>int main(int argc, char *argv[]) {extern char **environ;int i = 0;for(; environ[i]; i++){printf("%s\n", environ[i]);}return 0; }
方法三: 使用getenv()
1 #include<stdio.h>2 #include<stdlib.h>3 4 int main()5 {6 char* mypath =getenv("PATH");7 printf("%s\n" ,mypath);8 return 0;9 }
通过系统调用获取或设置环境变量
putenv , 后面讲解
getenv , 本次讲解
环境变量 VS 本地(普通)变量
bash进程可以保存变量 能读懂条件 进而可以产生脚本
bash内部有环境变量 ,本地变量 ,argv[]等,如图所示
输入a =100,用env打印全部环境变量没有找到,因为此时a是本地变量
输入export a(可以将a导入环境变量) ,再使用env打印就能看见a=100
unset a (可以将a从环境变量到出到本地变量)
环境变量通常是具有全局属性的
接着上面,重新创建新进程 ,发现依然可以在环境变量里找到a
证明环境变量具有全局性,可以被子进程继承.
本地变量不能子进程被继承
总结放在了开头

相关文章:
环境变量 ─── linux第14课
本内容为总结: 1. 环境变量本质是配置信息, 在系统配置时起效 . 2. 环境变量具有全局性(子进程可以继承父进程的环境信息,不能继承本地变量) 3. 进程具有独立性 ,环境变量可以进程间传递信息(只读信息) 环境变量 环境变量(environment variables)一般是指在操作系统中用来指定操…...
英文生物信息学技术社区Top10推荐:基本情况、评介和网页链接
英文生物信息学技术社区Top10推荐:基本情况、评介和网页链接 李升伟 一、思考与分析 生物信息学涉及生物数据分析和计算工具,所以相关的社区可能包括论坛、问答平台、资源库等等。 首先,我想到Biostars,这是一个比较知名的生物信…...
基于APDL语言的结构优化设计
1、前言 结构设计是创造结构方案的过程,传统的结构设计是设计者按设计要求和设计者的实践经验,参考类似工程,通过判断创造结构方案,然后进行力学分析或按规范要求作安全校核,再修改设计。 而结构优化设计与分析则把力…...
五、Redis 持久化:RDB 与 AOF 深入解析与优化策略
Redis 持久化:RDB 与 AOF 深入解析与优化策略 在 Redis 作为高性能缓存和数据库使用的过程中,数据持久化 是一个关键问题。Redis 提供了两种主要的持久化机制:RDB(Redis Database 快照) 和 AOF(Append-Only File 日志)。本文将详细介绍 Redis 持久化机制的原理、优缺点…...
一、MySQL备份恢复
一、MySQL备份恢复 1.1 MySQL日志管理 数据库中数据丢失或被破坏可能原因 误删除数据库 数据库工作时,意外断电或程序意外终止 由于病毒造成的数据库损坏或丢失 文件系统损坏后,系统进行自检操作 升级数据库时,命令语句不严格 设备故…...
【Linux第三弹】Linux基础指令 (下)
目录 🌟1.find指令 1.1find使用实例 编辑 🌟2.which指令 🌟3.grep指令 3.1grep使用实例 🌟 4.zip/unzip指令 4.1 zip/unzip使用实例 🌟5.tar指令 5.1 tar使用实例 🌟6.完结 很庆幸走在自己…...
VB6网络通信软件开发,上位机开发,TCP网络通信,读写数据并处理,完整源码下载
VB6网络通信软件开发,上位机开发,TCP网络通信,读写数据并处理,完整源码下载 完整源码XZ网口四进四出主动上传版_VB源代码.rar 下载链接:http://xzios.cn:86/WJGL/DownLoadDetial?Id20 在自动化、物联网以及工业控制…...
TMS320F28P550SJ9学习笔记1:CCS导入工程以及测试连接单片机仿真器
学习记录如何用 CCS导入工程以及测试连接单片机仿真器 以下为我的CCS 以及驱动库C2000ware 的版本 CCS版本: Code Composer Studio 12.8.1 C2000ware :C2000Ware_5_04_00_00 目录 CCS导入工程: 创建工程: 添加工程: C…...
阿里万相,正式开源
大家好,我是小悟。 阿里万相正式开源啦。这就像是AI界突然开启了一扇通往宝藏的大门,而且还是免费向所有人敞开的那种。 你想想看,在这个科技飞速发展的时代,AI就像是拥有神奇魔法的魔法师,不断地给我们带来各种意想…...
Glide图片加载优化全攻略:从缓存到性能调优
在 Android 的图片加载库 Glide 中,当图片加载到列表(如 RecyclerView 或 ListView)时,Glide 会根据其内部的线程池和缓存机制来管理图片的加载任务。以下是关于 Glide 在列表中同时异步加载几张图片的相关细节: 1. Gl…...
力扣HOT100之哈希:49. 字母异位词分组
这道题自己先想了一边,定义了一个比较字符串的函数,用二重循环和一个数组来实现字符串的比较,若两个字符串是异位词,那么就返回true,否则返回false,在主函数中,同样用一个二重循环来遍历向量中的…...
纯前端使用 Azure OpenAI Realtime API 打造语音助手
本文手把手教你如何通过纯前端代码实现一个实时语音对话助手,结合 Azure 的 Realtime API,展示语音交互的未来形态。项目开源地址:https://github.com/sangyuxiaowu/WssRealtimeAPI 1. 背景 在这个快节奏的数字时代,语音助手已经…...
基于Windows11的RAGFlow安装方法简介
基于Windows11的RAGFlow安装方法简介 一、下载安装Docker docker 下载地址 https://www.docker.com/ Download Docker Desktop 选择Download for Winodws AMD64下载Docker Desktop Installer.exe 双点击 Docker Desktop Installer.exe 进行安装 测试Docker安装是否成功&#…...
教育强国建设“三年行动计划“分析
教育部即将推出的教育强国建设"三年行动计划"中,职业教育板块的部署体现出鲜明的战略导向和创新思维,其核心是通过系统化布局和结构性改革推动职业教育高质量发展。以下从政策内涵、实施路径及潜在影响三个维度展开分析: 一、政策…...
基于Spring Boot+vue的厨艺交流平台系统设计与实现
大家好,今天要和大家聊的是一款基于Spring Boot的“厨艺交流平台”系统的设计与实现。项目源码以及部署相关事宜请联系我,文末附上联系方式。 项目简介 基于Spring Boot的“厨艺交流平台”系统设计与实现的主要使用者分为管理员、普通用户和游客。没有…...
GPU、NPU与LPU:大语言模型(LLM)硬件加速器全面对比分析
引言:大语言模型计算基础设施的演进 随着大语言模型(LLM)的快速发展与广泛应用,高性能计算硬件已成为支撑LLM训练与推理的关键基础设施。目前市场上主要有三类处理器用于加速LLM相关任务:GPU(图形处理单元…...
Spring Boot Gradle 项目中使用 @Slf4j 注解
Spring Boot Gradle 项目中,如果想使用 Slf4j 注解来启用日志记录,首先需要添加 Lombok 和 SLF4J 的依赖。可以通过以下步骤来添加它们: 1. 添加 Lombok 依赖 在 build.gradle 文件中添加以下 Lombok 依赖: dependencies {impl…...
第四十五:创建一个vue 的程序
html <div id"app">{{ msg }}<h2>{{ web.title }}</h2><h3>{{ web.url }}</h3> </div> js /*<div id"app"></div> 指定一个 id 为 app 的 div 元素{{ }} 插值表达式, 可以将 Vue 实例中定义的数据在视图…...
强化学习-随机近似与随机梯度下降
强化学习-数学理论 强化学习-基本概念强化学习-贝尔曼公式强化学习-贝尔曼最优公式强化学习-值迭代与策略迭代强化学习-蒙特卡洛方法强化学习-随机近似于随机梯度下降 文章目录 强化学习-数学理论一、前言二、再谈mean eatimation2.1 回顾蒙特卡洛法2.2 新角度解决求均值问题2…...
前端怎么排查幽灵依赖
“幽灵依赖”是指项目中实际使用但未在 package.json 中显式声明的依赖项。排查幽灵依赖可以帮助避免潜在的版本冲突和运行时错误。以下是排查幽灵依赖的几种常见方法: 使用 npm ls 或 yarn list 命令 运行 npm ls 或 yarn list 可以查看项目中安装的所有依赖及其依…...
分布式锁实现方案对比与最佳实践
目录 分布式锁的应用场景常见的锁实现方案Redisson实现分布式锁的最佳实践方案对比与选择建议 分布式锁的应用场景 在分布式系统中,常常需要控制对共享资源的访问。典型的应用场景包括: 缓存击穿防护:防止大量请求同时查询数据库库存扣减…...
从 XMLHttpRequest 到 Fetch:现代 Web 请求技术的演进
在现代 Web 开发中,与服务器进行数据交互是必不可少的一部分。无论是加载动态内容、提交表单数据,还是实现实时更新,都需要通过 HTTP 请求来完成。本文将介绍两种主流的 Web 请求技术:XMLHttpRequest 和 Fetch API,探讨…...
Linux纯命令行界面下SVN的简单使用教程
诸神缄默不语-个人技术博文与视频目录 我用的VSCode插件是这个: 可以在文件中用色块显示代码修改了什么地方,点击色块还可以显示修改内容。 文章目录 1. SVN安装2. checkout3. update1. 将文件加入版本控制 4. commit5. 查看SVN信息:info6.…...
python 初学攻略(上)
废话写在前面,后面都是干货,这个语言教学到处都是。我这里直接给你搞定所有要用的就好了。 环境安装(略) 输出函数print 转义字符 二进制与字符编码 标识符和保留字 变量的定义和使用 数据类型 整数类型 浮点类型 布尔类型 字符串…...
大语言模型 智能助手——既能生成自然语言回复,又能在必要时调用外部工具获取实时数据
示例代码: import json from langgraph.graph import Graph, END,StateGraph from langchain_core.utils.function_calling import convert_to_openai_function from langchain_community.tools.openweathermap import OpenWeatherMapQueryRun from langchain_core…...
人工智能开发面经AI、大数据、算法
以下是一份AI算法开发岗位的面试面经,结合最新行业趋势和经典问题,涵盖技术解析与实战案例,供参考: 一、机器学习基础(占比约30%) 1. 过拟合与欠拟合的解决方案 问题:如何解决模型过拟合&…...
计算机网络——子网掩码
一、子网掩码是什么?它长什么样? 子网掩码的定义 子网掩码是一个32位的二进制数字,与IP地址“配对使用”,用于标识IP地址中哪部分属于网络地址,哪部分属于主机地址。 示例:IP地址 192.168.1.10,…...
《基于大数据的相州镇新农村商务数据分析与研究》开题报告
目录 一、选题依据 1.选题背景 2.国内外研究现状与水平 (1)国外研究现状 (2)国内研究现状 3.发展趋势 4.研究意义 二、研究内容 1.学术构思与思路 (1)主要研究内容 (2)拟解决的关键问…...
Linux : 环境变量
目录 一 环境变量 1.基本概念 二 常见环境变量 三 查看环境变量的方法 1.env:查看系统中所有环境变量 2. echo $NAME 四 如何不带路径也能运行的自己的程序 1.将自己的程序直接添加到PATH指定的路径下 五 环境变量与本地变量 1.本地变量 2. 环境变量 六C、C中main()…...
SQL-labs13-16闯关记录
http://127.0.0.1/sqli-labs/less-13/ 基于POST单引号双注入变形 1,依然是一个登录框,POST型SQL注入 2,挂上burpsuite,然后抓取请求,构造请求判断漏洞类型和闭合条件 admin 发生了报错,根据提示闭合方式是(…...










