当前位置: 首页 > news >正文

Linux Shell环境变量与数组完整学习笔记

一、前言
本文基于Linux bash shell学习小结知识点,结合Xshell实操演示全局/局部环境变量、PATH变量、shell启动文件、数组变量四大模块,梳理完整知识框架,附带实操截图说明、命令作用解析,适合Linux初学者梳理shell变量体系。
二、知识框架总览
Linux Shell变量体系
├─ 环境变量分类
│ ├─ 局部变量(仅当前shell会话生效)
│ └─ 全局环境变量(子shell、新会话均可继承)
├─ PATH核心环境变量(命令搜索路径)
├─ Shell启动配置文件(永久设置环境变量)
│ ├─ 系统级全局配置
│ └─ 用户级配置 ~/.bashrc
└─ Shell数组变量(批量存储多组数据)
三、知识点1:全局环境变量 & 局部环境变量
1.概念区分
1)局部变量
仅在当前终端shell会话有效,切换新窗口、新建子shell后变量直接失效,仅当前脚本/当前终端可用。
2)全局环境变量
使用export声明导出,当前shell以及它创建的所有子shell、子进程都能读取;但新开独立终端窗口默认不生效(需写入配置文件实现永久全局)。
2.配套实操命令及用途
1)变量名=值:定义局部变量,无空格,等号左右不能加空格
2)export 变量名=值:直接定义全局环境变量;export 已有局部变量:把局部变量升级为全局
3)echo $变量名:读取、打印变量值
4)env:查看系统全部全局环境变量
5)set:查看当前shell所有变量(局部+全局+函数)
6)unset 变量名:删除变量,释放变量存储空间
3.Xshell实操流程
1)定义局部变量:name=zhangsan,执行echo $name能打印;新开子bash输入echo $name无输出,证明局部不继承。
2)执行export name将局部转为全局,再次新开子bash,echo $name可正常读取。
3)执行env筛选能看到name变量,执行unset name后再次echo,变量消失。
4)截图要点:局部变量子shell失效对比、export导出前后env命令输出对比、unset删除效果截图。
四、知识点2:自定义自用全局、局部环境变量
1.临时自定义(仅当前终端生效)
局部自定义:直接赋值 student=linux01
临时全局自定义:export student=linux01
关闭终端后全部失效,仅临时测试使用。
2.永久自定义全局变量(所有终端生效)
修改用户shell启动文件 ~/.bashrc,在文件末尾添加export 自定义变量=内容,保存后执行source ~/.bashrc重载配置,之后打开任意Xshell窗口都能读取该全局变量。
3.框架总结

变量类型定义方式生效范围生命周期
局部自用变量var=xxx当前终端关闭终端失效
临时全局自用变量export var=xxx当前+子shell关闭终端失效
永久全局自用变量写入~/.bashrc+source所有用户终端永久生效,删除配置才失效

五、知识点3:PATH环境变量核心作用
1.概念理解
PATH是系统内置全局环境变量,存储一组目录路径,bash执行命令时,会按照PATH里目录顺序依次查找对应可执行文件,找到第一个匹配程序就执行;若所有目录都无该程序,提示command not found。
2.核心操作命令与参数用途
1)echoP A T H :查看当前所有命令搜索目录,目录之间用 ‘ : ‘ 分隔 2 ) P A T H = PATH:查看当前所有命令搜索目录,目录之间用`:`分隔 2)PATH=PATH:查看当前所有命令搜索目录,目录之间用:分隔2PATH=PATH:新目录路径:临时追加目录到PATH末尾,当前终端生效
3)PATH=新目录路径:P A T H :把自定义目录放到搜索列表最前面,优先执行该目录程序 4 )永久修改 P A T H :在 / . b a s h r c 写入 e x p o r t P A T H = PATH:把自定义目录放到搜索列表最前面,优先执行该目录程序 4)永久修改PATH:在~/.bashrc写入export PATH=PATH:把自定义目录放到搜索列表最前面,优先执行该目录程序4)永久修改PATH:在/.bashrc写入exportPATH=PATH:/xxx/xxx,source重载
3.Xshell实操演示
1)执行echo $PATH截图,展示系统默认搜索目录。
2)创建自定义脚本目录,临时追加进PATH,直接执行目录内脚本,无需写完整绝对路径;删除PATH里该目录后,执行脚本提示找不到命令,直观验证PATH搜索逻辑。
3)截图要点:PATH原始输出、追加目录后执行脚本、移除PATH后命令失效对比图。
六、知识点4:bash shell启动文件 ~/.bashrc
1.启动文件运行逻辑
bash终端分为登录shell、非登录shell,打开Xshell普通窗口属于非登录shell,启动时自动加载 ~/.bashrc 文件;文件内提前定义的环境变量、别名、函数会自动加载到当前会话,实现永久配置。
2.~/.bashrc核心用途
自定义永久全局环境变量(export写入)
自定义命令别名alias
配置shell脚本运行环境、工具路径
3.配套操作命令
1)vim ~/.bashrc:编辑用户专属shell配置文件
2)source ~/.bashrc / . ~/.bashrc:不重启终端,立即重载配置文件,新设置马上生效
3)cat ~/.bashrc:查看配置文件原有内容
4.实操流程
1)vim打开.bashrc,末尾添加自定义全局变量export MYENV=test123,保存退出。
2)新开Xshell窗口,执行echoM Y E N V ,正常输出值;证明文件自动加载。 3 )修改 P A T H 写入 . b a s h r c , s o u r c e 后验证全局路径永久生效。 4 )截图:编辑 . b a s h r c 界面、新开终端读取变量、 s o u r c e 重载命令执行结果。七、知识点 5 : S h e l l 数组变量使用 1. 基础概念 b a s h 数组可以一次性存储多个字符串数据,分为索引数组(数字下标,从 0 开始)、关联数组(自定义字符串下标),常用于批量处理文件名、参数列表。 2. 数组核心操作命令及参数用法 1 )索引数组定义: a r r = ( " a " " b " " c " ) ,元素空格分隔,整体用括号包裹 2 )读取单个元素: MYENV,正常输出值;证明文件自动加载。 3)修改PATH写入.bashrc,source后验证全局路径永久生效。 4)截图:编辑.bashrc界面、新开终端读取变量、source重载命令执行结果。 七、知识点5:Shell数组变量使用 1.基础概念 bash数组可以一次性存储多个字符串数据,分为索引数组(数字下标,从0开始)、关联数组(自定义字符串下标),常用于批量处理文件名、参数列表。 2.数组核心操作命令及参数用法 1)索引数组定义:arr=("a" "b" "c"),元素空格分隔,整体用括号包裹 2)读取单个元素:MYENV,正常输出值;证明文件自动加载。3)修改PATH写入.bashrcsource后验证全局路径永久生效。4)截图:编辑.bashrc界面、新开终端读取变量、source重载命令执行结果。七、知识点5Shell数组变量使用1.基础概念bash数组可以一次性存储多个字符串数据,分为索引数组(数字下标,从0开始)、关联数组(自定义字符串下标),常用于批量处理文件名、参数列表。2.数组核心操作命令及参数用法1)索引数组定义:arr=("a""b""c"),元素空格分隔,整体用括号包裹2)读取单个元素:{arr[下标]},例a r r [ 0 ] 读取第一个元素 3 )读取全部元素: {arr[0]} 读取第一个元素 3)读取全部元素:arr[0]读取第一个元素3)读取全部元素:{arr[@]} /a r r [ ∗ ] 4 )获取数组长度: {arr[*]} 4)获取数组长度:arr[]4)获取数组长度:{#arr[@]}
5)修改指定下标元素:arr[1]=newvalue
6)遍历数组:for循环搭配 ${arr[@]} 循环读取每一个元素
7)删除数组元素:unset arr[2];清空整个数组unset arr
3.Xshell实操演示
1)创建索引数组,打印单个元素、全部元素、数组长度。
2)修改数组指定下标内容,再次打印查看变化。
3)for循环遍历输出数组所有内容。
4)unset删除单个元素,验证对应下标数据消失。
5)截图:数组定义、读取、长度查询、循环遍历、删除元素全过程输出。
八、完整实操截图说明
博文每个知识点分段插入对应截图,截图标注操作步骤:
1.局部/全局变量:局部变量子shell失效截图、export导出env输出截图、unset删除截图
2.PATH变量:echo $PATH输出、追加目录执行自定义程序、PATH移除后报错截图
3.~/.bashrc配置:vim编辑配置、source重载、新开终端读取永久变量截图
4.数组变量:数组定义、下标读取、长度、循环遍历、删除元素终端输出截图
九、知识总结框架——变量分类框架
1.局部变量
定义语法:var=value
生效范围:仅当前shell
查看:set
删除:unset var
2.全局环境变量
定义:export var=value
生效:当前+所有子shell
查看:env
永久生效:写入~/.bashrc+source
3.PATH特殊环境变量
功能:命令检索目录列表
修改方式:临时直接赋值、永久写入bashrc
4.Shell启动文件 ~/.bashrc
触发时机:非登录shell(普通Xshell窗口)启动自动加载
作用:存放永久环境变量、别名
重载命令:source ~/.bashrc
5.Shell数组
索引数组:数字下标,批量存储数据
常用操作:取值、统计长度、遍历、增删元素
🔺作业运行截图:





http://www.cnnetsun.cn/news/3238092.html

相关文章:

  • AI落地不再是空谈!消费品品牌商的渠道痛点与AI解决方案(收藏必备)
  • ADRV904x时钟方案设计与相位噪声分析
  • 如何快速搭建你的专属AI中医助手:5分钟免费体验仲景中医大语言模型
  • np.where(arr<0,0,arr)数据替换
  • 3 种传感器退化场景解析:Ground-Fusion 如何应对视觉/轮速计/GNSS失效
  • 从访存的角度理解RTOS的实时性
  • 点餐小程序平台哪个好?菜单、支付和后厨订单能力对比
  • Logistic 模型与回归辨析:从S型曲线到分类任务的5个关键差异
  • Google OSV-Scanner:一个命令扫清项目依赖里的漏洞
  • 计算机毕业设计之旅行社网站的设计与实现
  • 2026年外贸获客新思路:SEO保底,GEO抢跑,双管齐下
  • 小说大纲生成AI写作辅助工具使用参考
  • 私有化视频会议平台/智能会议管理系统EasyDSS助力企业实现数字化培训全链路转型
  • Maven POM 标签说明
  • 从单兵到团队:用AI智能体协作框架构建高效自动化工作流
  • 3步免费获取国家中小学智慧教育平台电子课本PDF:教师必备的终极下载指南
  • SketchUp STL插件:3D打印工作流的终极解决方案
  • 空号检测能力综合评估:2026主流方案数据源覆盖度、识别准确率与实时响应速度梯队解读
  • 终极指南:快速解决ComfyUI-Impact-Pack FaceDetailer节点种子缺失问题
  • 怎样高效实现微信群消息智能转发:自动化同步完整指南
  • 【Qt初识】信号槽(二):自定义信号函数与槽函数
  • 微信群消息自动转发完整指南:3步实现跨群信息同步
  • 校招季消息发不完,如何告别重复邀约内耗
  • 多个 AI 怎么「开会不抢话」?AutoGen Group Chat 一文讲透
  • MambaDFuse 多模态图像融合实战:RTX 4090 双卡训练,8大指标超越SOTA
  • Python scikit-learn KMeans 与 ArcPy 结合:GIS面数据4属性聚类与3步自动化制图
  • 计算机毕业设计之旅游资源及线路管理系统
  • 2026零基础考试季课堂记录入门教程避坑详解包教包会可直接上手
  • 【IEEE出版、往届2.5个月检索、中山大学主办】第六届计算机科学与区块链国际学术会议(CCSB 2026)
  • 网站发布内容预检和网站巡查预警对运营管理有哪些要求?