Linux环境变量与数组变量学习小结
环境变量是Linux系统中存储系统环境信息的重要机制它们分为全局环境变量和局部环境变量两种类型。全局环境变量也称为系统环境变量对当前Shell及其所有子Shell可见通常在系统启动时加载而局部环境变量仅在定义它们的Shell进程中有效子Shell无法继承这些变量。理解这两者的区别对于管理Linux系统环境至关重要因为我们需要知道哪些设置会影响整个系统哪些只影响当前用户会话。在Xshell中实际操作可以直观验证全局与局部环境变量的区别。首先用printenv命令查看所有全局环境变量或者用printenv HOME查看特定变量的值。定义一个局部变量很简单直接输入mylocalThis is local即可然后用set | grep mylocal确认它存在。接着用export myglobalThis is global创建一个全局环境变量使用env | grep myglobal验证。输入bash进入子Shell在子Shell中分别执行echo $mylocal和echo $myglobal会看到局部变量为空而全局变量正常输出这就完美证明了全局环境变量可以被子Shell继承而局部环境变量不能。PATH环境变量是Linux系统中最重要的环境变量之一它定义了bash shell在查找可执行命令时的搜索目录顺序。当用户在命令行输入一个命令时shell会按照PATH变量中列出的目录顺序依次查找对应的可执行文件直到找到为止。这就是为什么我们可以直接输入ls或date而不需要输入完整路径/bin/ls的原因。PATH的值通常包含/usr/local/bin、/usr/bin、/bin等系统目录多个目录之间用冒号分隔。在Xshell中操作PATH变量非常直观。先用echo $PATH查看当前PATH值会看到类似/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin的输出。临时添加自定义目录到PATH可以用PATH$PATH:/my/custom/bin这样shell就会在原有目录之后额外搜索/my/custom/bin。如果想永久添加需要将这条语句写入启动文件。使用which命令可以查看某个命令的完整路径比如which ls会显示/bin/ls这个路径必然在PATH的某个目录中。bash shell在启动时会执行多个启动文件来初始化环境这些文件包含了环境变量的定义为每个bash会话设置标准环境变量。对于登录式shell启动文件执行顺序为/etc/profile→~/.bash_profile→~/.bashrc而对于非登录式交互式shell比如在Xshell中直接打开终端只会执行~/.bashrc。理解这些启动文件的执行机制非常重要因为我们可以根据需求将环境变量定义放在不同的文件中从而实现全局配置或用户个人配置。在Xshell中操作启动文件也很简单。用vim ~/.bashrc编辑用户个人的启动文件加入一行export MY_VARHello保存退出后执行source ~/.bashrc或重新打开终端让配置生效然后可以用echo $MY_VAR验证变量是否成功加载。如果是系统级配置需要用sudo vim /etc/profile编辑但一般建议优先使用~/.bashrc因为这样不会影响其他用户也更加安全可控。数组变量是shell脚本编程中非常有用的数据结构它允许在单个变量名下存储多个值。在bash中数组不需要预先声明大小可以直接赋值和使用。数组的元素可以是任意字符串通过索引访问索引从0开始。数组变量特别适合存储一组相关的数据比如文件列表、用户名列表或配置选项集合使用数组可以让脚本更加清晰和易于维护。在Xshell中操作数组变量可以这样进行。定义数组用mylist(apple banana orange)访问第一个元素用echo ${mylist[0]}输出apple访问所有元素用echo ${mylist[]}。查看数组长度用echo ${#mylist[]}会输出3。添加新元素用mylist[3]grape删除某个元素用unset mylist[1]会移除banana。还可以通过循环遍历数组比如for item in ${mylist[]}; do echo $item; done会逐个输出所有元素。这些操作在实际脚本编写中非常实用。知识框架体系环境变量与数组变量命令速查分类命令用途主要参数及用法查看变量printenv显示所有或指定全局环境变量printenv HOME查看HOME值不加参数显示所有全局变量env显示所有全局环境变量env | grep PATH结合grep过滤特定变量set显示所有变量包括局部变量和函数set | grep myvar查找自定义变量echo输出变量值echo $PATH变量名前加$符号定义变量变量名值定义局部环境变量mylocalhello等号两边不能有空格导出变量export将局部变量提升为全局环境变量export myglobalworld定义并导出export mylocal先定义后导出修改变量PATH$PATH:/new/path临时追加PATH搜索目录冒号分隔多个目录$PATH引用原值查看命令路径which查看命令在PATH中的完整路径which ls显示/bin/lstype查看命令类型内建/外部/别名type cd显示是否为内建命令启动文件source在当前shell中执行启动文件source ~/.bashrc使配置立即生效等效于. ~/.bashrcvim ~/.bashrc编辑用户个人启动文件加入export语句定义永久环境变量数组操作数组(元素1 元素2)定义数组变量arr(a b c)空格分隔元素${数组[索引]}访问数组单个元素${arr[0]}访问第一个元素索引从0开始${数组[]}访问数组所有元素${arr[]}输出所有元素${#数组[]}获取数组元素个数${#arr[]}输出数组长度数组[索引]新值修改或添加数组元素arr[2]new将第三个元素改为newunset 数组[索引]删除数组元素unset arr[1]删除第二个元素for i in ${数组[]}循环遍历数组配合do...done结构遍历所有元素

相关新闻

突发!阿里全面禁用Claude Code!2026AI圈重磅变局,背后攻防远比你想象的更残酷

突发!阿里全面禁用Claude Code!2026AI圈重磅变局,背后攻防远比你想象的更残酷

2026年AI圈最大变局,正式落地!近日,阿里内部正式官宣:全面禁用Claude Code全系产品,将其列入高风险软件黑名单,全员禁止在办公环境、开发设备、内网工程中使用,7月10日起全集团强制执行。消息一…

2026/7/9 6:55:10阅读更多 →
龙虾3.13部署避坑指南:环境、配置与命令失效的深层根因

龙虾3.13部署避坑指南:环境、配置与命令失效的深层根因

1. “一键部署”背后的三重幻觉:为什么龙虾3.13的安装脚本从不告诉你真实成本“OpenClaw 龙虾 3.13 一键部署成功!”——这句话在技术社区里出现频率极高,截图里终端窗口绿字滚动、服务端口亮起、Web界面弹出,看起来毫无破绽。我去…

2026/7/9 6:55:10阅读更多 →
百考通,任务书一键生成,让学术研究起步即规范

百考通,任务书一键生成,让学术研究起步即规范

任务书是学术研究的“第一份契约”,它不仅要明确研究内容、技术目标,还要符合学校的规范格式,往往成为很多同学学术之路的第一个难题。百考通AI(https://www.baikaotongai.com)的任务书生成功能,让你告别无…

2026/7/9 6:55:10阅读更多 →
计算机毕业设计之吕梁学院校园一卡通系统的设计与实现

计算机毕业设计之吕梁学院校园一卡通系统的设计与实现

本论文主要论述了如何使用JSP技术开发一个吕梁学院校园一卡通系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述吕梁学院校园一卡通系统的当前背景以及系统开…

2026/7/9 8:00:18阅读更多 →
vtkDefaultPass代码解析

vtkDefaultPass代码解析

vtkDefaultPass 是 VTK 渲染管线中最基础、最核心的渲染通道(Render Pass)。它实现了 VTK 标准的渲染顺序逻辑,负责将场景中的各种几何体(Props)按照正确的透明度和类型顺序绘制到屏幕上。 以下是该类的详细解析: 1. 核心职责 vtkDefaultPass 的主要任务是执行标准的“…

2026/7/9 8:00:18阅读更多 →
园世深耕运动声学底层技术,以标准制定者之姿领跑专业运动耳机赛道

园世深耕运动声学底层技术,以标准制定者之姿领跑专业运动耳机赛道

2026年,运动音频市场正式迈入专业场景化竞争新阶段。据IDC数据显示,2025年上半年全球开放式耳机出货量同比增长61.1%,其中主打运动场景的颈挂式骨传导产品出货量同比增长6.0%,印证了开放式聆听已成为运动人群的主流选择。在这一高…

2026/7/9 8:00:18阅读更多 →
试验管理4.0时代已来:你的实验室准备好了吗?

试验管理4.0时代已来:你的实验室准备好了吗?

回顾试验管理系统的演进历程,可以清晰地看到四个阶段:试验1.0时代纸质记录、人工传递计算机技术初入科研的时代,实验室仍以纸质记录为主,数据易出错、难追溯。早期LIMS以单机本地化部署为主,核心价值仅仅是替代Excel台…

2026/7/9 8:00:18阅读更多 →
如何设计一个生产级的 Agent 系统架构?需要考虑哪些关键模块?

如何设计一个生产级的 Agent 系统架构?需要考虑哪些关键模块?

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:AI大模型原理和应用面试题 文章目录 一、🍀回答重点 二、🍀扩展知识 2.1 ☘️模型网关为什么这么重要 2.2 ☘️成本控制的实战策略 <font face=&qu…

2026/7/9 8:00:18阅读更多 →
仲景中医大语言模型:5分钟搭建你的专属AI中医助手完整指南

仲景中医大语言模型:5分钟搭建你的专属AI中医助手完整指南

仲景中医大语言模型&#xff1a;5分钟搭建你的专属AI中医助手完整指南 【免费下载链接】CMLM-ZhongJing 首个中医大语言模型——“仲景”。受古代中医学巨匠张仲景深邃智慧启迪&#xff0c;专为传统中医领域打造的预训练大语言模型。 The first-ever Traditional Chinese Medic…

2026/7/9 7:55:17阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述&#xff1a;从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目&#xff0c;叫 skills4/skills &#xff0c;它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景&#xff1a;一个旨在展示或教授某种技能的仓库&#xff0c;本身却成了安…

2026/7/9 5:56:19阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示&#xff1a;因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战&#xff1a;从“黑箱预测”到“可信推理”2026年6月&#xff0c;第7届机器学习与趋势国际会议&#xff08;MLT 2026&#xff09;将在悉尼召开。会议议程中&#xff0c;“因果与可解释机器学习…

2026/7/8 7:00:12阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时&#xff0c;通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中&#xff0c;是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/9 2:47:07阅读更多 →
Three.js 着色器光效教程

Three.js 着色器光效教程

着色器光效 Shader Light ▶ 在线运行案例 案例合集&#xff1a; 三维可视化功能案例&#xff08;threehub.cn&#xff09;开源仓库github地址&#xff1a; https://github.com/z2586300277/three-cesium-examples400个案例代码: 网盘链接 你将学到什么 ShaderMaterial 自…

2026/7/9 0:04:37阅读更多 →
如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理&#xff1a;开源工具CASEMOVE终极指南 【免费下载链接】casemove A dedicated desktop app that enables you to move items in and out of storage units in CS2. 项目地址: https://gitcode.com/gh_mirrors/ca/casemove 还在为CS2存储单…

2026/7/9 0:04:37阅读更多 →
GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a与MySQL 8.0&#xff1a;ALTER TABLE语法差异深度解析与实战指南1. 两种数据库的ALTER TABLE能力全景对比在数据库架构设计和运维过程中&#xff0c;表结构变更&#xff08;DDL操作&#xff09;是不可避免的需求。GBase 8a作为国产分析型数据库代表&#xff0c;与开源M…

2026/7/9 0:04:37阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时&#xff0c;发现推理速度只有可怜的 1-2 FPS&#xff0c;而别人的演示视频却能跑到 30 FPS 以上&#xff0c;那么问题很可能不在模型本身&#xff0c;而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后&#xff0c;会直接使用官方示例…

2026/7/8 6:59:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一&#xff1a;为什么你需要了解 Coze 和 Dify&#xff1f;如果你对 AI 应用开发感兴趣&#xff0c;但一看到“大模型”、“智能体”、“工作流”这些词就头疼&#xff0c;觉得门槛太高&#xff0c;那这篇文章就是为你准备的。很多开发者&#xff0c;包括我自己&#…

2026/7/8 13:42:39阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会&#xff1a;配图一直是个让人头疼的问题。2026年&#xff0c;AI生图工具已经非常成熟了&#xff0c;但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1&#xff1a;速度之王2026年6月11日&#xff0c…

2026/7/8 13:42:39阅读更多 →