Linux之进程(六)--环境变量
📅 2026/7/10 23:02:13
👁️ 次浏览
了解main的参数我们直接来看一下这个函数我们可以合理推测这个argc是记录命令行参数的的个数多少,而argv[]记录命令行的具体命令我们来做一个小demo初步实现linux的命令行,留个印象我们来思考一下为什么要有命令行参数命令行参数本质上是为了实现一个命令,根据不同的子选项,来实现不同的子命令什么是环境变量环境变量Environment Variable 是操作系统或运行环境中用来存储系统配置信息、路径、行为开关的一类“全局变量”可以被系统中的程序直接读取和使用。从操作理解环境变量为什么我们按ll可以查看文件夹内的信息,pwd怎么可以看当前的路径为什么我们要这样./main.c才能运行这个二进制文件因为系统并不知道二进制的位置,而pwd,ll,cd命令都在user/bin的文件夹下面,系统自动去哪个文件夹下面找可执行二进制文件.就是说环境变量里记录的那些文件夹操作系统挨个翻一遍去找有没有这个名字的可执行文件。如果找到了就运行它。如果找遍了都没找到就会报错 command not found。它会把 PATH环境变量里记录的那些文件夹挨个翻一遍去找有没有这个名字的可执行文件。其他可执行文件不知道位置,所以要加上文件的位置信息更改环境变量现在可以直接运行main.exe文件但是之前的ls等指令都无法实行了但是我们退出后会恢复,为了不丢失原来的系统指令,要用下面这种方法,但是下面也是零时的办法永久写进去echo export PATH$PATH:/your/dir/here ~/.bashrc查看环境变量的方法PATH环境变量:存储命令指令的文件的文件地址环境变量改变了,原来的命令无法执行了,但是没有关系 ,我们退出在进就欧克除了上面这种还有其他的环境变量env可以看到所有的环境变量user就会记录当前的使用者pwd就会记录当前文件的所在位置当然还有其他的,这里不做过多介绍main的参数查看环境变量main函数可以有多个参数,第三个是环境变量,为了没有警告我们对前两个参数也要操作.env是二级指针数组,里面存有环境变量的内容,我们可以像访问数组一样去获取环境变量的地址使用函数来获取getenvgetenv你想要的环境变量,就可以获得你所需环境变量的值环境变量底层传递的原理子进程继承父进程的环境变量我们让父进程打印完,在打印子进程父进程和子进程的环境变量的数目是一样的,环境变量的内容也一致子进程从父进程那里继承环境变量当然子进程在fork一个进程,fork出来的进程也可以继承环境变量子进程从bash那里继承环境变量,那bash里面的环境变量又是从哪里来的呢?bash 自身的环境变量源头全部来自系统 / 用户本地配置文件并非凭空存在同时能完美解释「临时改 PATH新开 Xshell 就恢复原样」这个现象子进程会从父 bash 进程继承内存中的环境变量而 bash 自身加载的环境变量全部来自 Linux 本地的系统、用户配置文件。每次 bash 实例启动时都会按固定顺序读取硬盘上的配置文件将文件中定义的 PATH、自定义变量加载到自身运行上下文。这也能解释我们直接在终端临时修改 PATH 后重新打开 Xshell 环境变量就恢复默认的现象命令行执行 export 修改 PATH 只是临时存入当前 bash 进程内存不会写入硬盘配置文件关闭当前终端窗口后该 bash 进程销毁内存里临时新增的路径直接丢失新打开的 Xshell 会创建全新 bash 进程重新读取原始配置文件初始化环境PATH 自然变回文件内预设的默认值。如果想要配置永久生效需要将 PATH 追加语句写入/.bashrc、/etc/profile 等持久化配置文件。系统级配置所有用户共用开机 / 登录时加载/etc/profile登录 Shell 最先读取定义全用户基础 PATH、系统全局变量/etc/profile.d/*.sh/etc/profile会自动批量执行该目录下所有脚本用于拆分系统环境配置/etc/bashrcCentOS//etc/bash.bashrcUbuntu全局交互式 shell 配置所有新开终端都会加载统一设置提示符、全局别名。我们来看一下bashrc,bash_profile这两个文件都是再用户家目录下的隐藏文件bash_profile他会读取bashrc的内容bashrc他会访问ect下面的bashrcetc/bashrc设置全系统所有用户共享的交互配置全局 shell 提示符 PS1、配色全局别名 alias所有用户都能用全局函数自动补全、shell 安全设置那么我们就可以设置一个自己的登录信息提示了解变量局部变量我想要定义一个自己的环境变量发现找不到我自己定义的环境变量,但是是存在这个变量的因为这个环境变量还只是本地变量,也就是局部变量,他无法被子进程继承,没有全局性,只可以在bash内部访问将局部变量转换为转为环境变量(环境变量是全局变量)我们要用export将他导入环境变量,之后再搜索即可export TEST100环境变量时全局的,子进程可以继承父进程的环境变量,去除环境变量unset 环境变量名查看局部变量和全局变量set对比项局部变量环境变量 (export 导出)定义语法varxxxexport varxxx/ 先赋值再 export子进程继承❌ 不能继承✅ 子进程自动复制一份C 语言 getenv 读取❌ 读不到✅ 可以读取查看命令set仅 shell 本地变量env/printenv删除命令unset varunset var同时从环境表清除生命周期当前 shell 会话关闭消失当前 shell 会话关闭消失持久化无法永久保存写入~/.bashrc等配置文件可永久生效
本系列实操文章以龙岩全域旅游智慧导览地图为落地案例,分享低成本落地方案:基于Banana Pro生模型与 ebmap Tour 导览制作平台,全程仅需 1780 元成本,即可完成整套全域智慧地图制作。既是低成本落地的实战探索,也是可复…
📅 2026/7/10 23:02:13
数据介绍借鉴Dermerjian等(2012)的思想,采用数据包络分析(DEA)和 Tobit 模型相结合的两阶段模型测度管理者能力。首先分行业计算公司的全效率,将固定资产净额、无形资产净额、商誉、研发支出、营业成本、销…
📅 2026/7/10 23:02:13
PyQt5 YOLOv8/26 苹果成熟度检测系统 苹果成熟度检测数据集的训练及应用
苹果成熟度【4类】目标检测(基于YOLOv8~26全系列,界面非常美观,)技术栈:pythonpyqt5提供数据集:
分类名: (图片张数&a…
📅 2026/7/10 23:01:13
终极PDF解密神器:3分钟永久解除科学文库7天限制的完整指南 【免费下载链接】ScienceDecrypting 破解CAJViewer带有效期的文档,支持破解科学文库、标准全文数据库下载的文档。无损破解,保留文字和目录,解除有效期限制。 项目地址…
📅 2026/7/11 0:14:36
Visual C运行库终极解决方案:VisualCppRedist AIO深度技术解析 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist
VisualCppRedist AIO是一个专业的Micr…
📅 2026/7/11 0:14:36
如何快速安装Blue Topaz主题:打造专属笔记环境的完整指南 【免费下载链接】Blue-Topaz_Obsidian-css A blue theme for Obsidian. 项目地址: https://gitcode.com/gh_mirrors/bl/Blue-Topaz_Obsidian-css
你是否厌倦了Obsidian默认的单调界面?每…
📅 2026/7/11 0:13:36
Go 数据库迁移工具链:从手写 SQL 到自动化版本管理的演进实践
一、手写 SQL 迁移的熵增:当 add_column_migration_v3_final_final2.sql 成为常规命名
数据库 Schema 变更是应用演进中最危险的操作。手写 SQL 的方式来管理这些变更,经过一段…
📅 2026/7/11 0:13:36
1. 这不是教程,是我在生产环境踩了73次坑后抄出来的部署清单“全网最全的 Jenkins Maven Git 自动化部署指南”——这个标题我第一次看到时笑了。不是笑它夸张,而是笑自己三年前也信了这句话,结果在客户现场连续通宵48小时,就为…
📅 2026/7/11 0:12:36
终极PS4游戏存档管理器:Apollo Save Tool完全指南 【免费下载链接】apollo-ps4 Apollo Save Tool (PS4) 项目地址: https://gitcode.com/gh_mirrors/ap/apollo-ps4
还在为游戏进度丢失而烦恼吗?想要轻松备份、分享和修改你的PS4游戏存档吗&#x…
📅 2026/7/11 0:12:36
摘要前面系列教程覆盖了 ArkUI 组件、路由、生命周期、本地存储、网络请求、Ability 底层全套基础能力,本篇统一梳理标准工程目录分层、模块化拆分、代码复用规范、全局工具统一管理、项目打包权限配置、常见工程报错统一解决方案,形成可直接用于课程设计…
📅 2026/7/11 0:00:31
1. 命令简介gpm 是 Linux 系统下运行于虚拟控制台(文字终端模式)的鼠标服务器。它的主要功能是在没有图形界面的纯文本环境中,为虚拟控制台提供鼠标支持,允许用户使用鼠标进行文本的选择、复制和粘贴操作,极大地提升了…
📅 2026/7/11 0:00:31
导语
先澄清一个常被混用的概念:BI试点"上线",并不等于试点"验收通过"。很多企业把仪表板做出来、账号发下去、培训开完场,就默认试点已经跑通,随后进入推广阶段——结果推广到第二个部门、第三个业务线时&am…
📅 2026/7/11 0:00:31
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/10 22:46:54
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/10 22:46:54
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/10 22:46:54
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/10 22:46:54
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/10 22:46:54
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/10 22:46:54