news 2026/7/9 8:04:26

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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数组
索引数组:数字下标,批量存储数据
常用操作:取值、统计长度、遍历、增删元素
🔺作业运行截图:





版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/9 7:59:12

AI落地不再是空谈!消费品品牌商的渠道痛点与AI解决方案(收藏必备)

本文探讨了消费品品牌商在渠道执行中常见的问题,如照片造假、数据采集低效、门头核查困难等,并详细介绍了AI技术如何解决这些问题。通过AI图像识别和AI Agent,企业能够实现照片真实性判断、高效采集终端陈列数据、精准核查门头达标情况&#…

作者头像 李华
网站建设 2026/7/9 7:57:07

ADRV904x时钟方案设计与相位噪声分析

ADRV904x时钟方案设计与相位噪声分析 摘要 ADRV904x作为一款高性能收发器芯片,其本地振荡器(LO)的相位噪声直接影响发射信号的误差矢量幅度(EVM)。本文基于ADI公司应用笔记,系统分析了评估板(EVB)上AD9528时钟发生器对LO相位噪声的影响机制,提供了绕过AD9528直接输入…

作者头像 李华
网站建设 2026/7/9 7:56:12

如何快速搭建你的专属AI中医助手:5分钟免费体验仲景中医大语言模型

如何快速搭建你的专属AI中医助手:5分钟免费体验仲景中医大语言模型 【免费下载链接】CMLM-ZhongJing 首个中医大语言模型——“仲景”。受古代中医学巨匠张仲景深邃智慧启迪,专为传统中医领域打造的预训练大语言模型。 The first-ever Traditional Chine…

作者头像 李华
网站建设 2026/7/9 7:55:35

np.where(arr<0,0,arr)数据替换

np.where(条件, 满足条件时填的值, 不满足条件时填的值)demo&#xff1a;把数组中小于0的数都替换为0import numpy as nparr np.array([-2.5, 3.0, -0.5, 0, 5.5, -1.2, 4.0])result np.where(arr < 0, 0, arr)print("处理结果&#xff1a;", result)处理结果&a…

作者头像 李华
网站建设 2026/7/9 7:52:57

3 种传感器退化场景解析:Ground-Fusion 如何应对视觉/轮速计/GNSS失效

3 种传感器退化场景解析&#xff1a;Ground-Fusion 如何应对视觉/轮速计/GNSS失效在自动驾驶和机器人定位领域&#xff0c;多传感器融合SLAM系统的鲁棒性设计一直是核心挑战。Ground-Fusion作为ICRA2024最新提出的低成本地面SLAM系统&#xff0c;通过创新的传感器退化处理机制&…

作者头像 李华
网站建设 2026/7/9 7:50:49

从访存的角度理解RTOS的实时性

从访存的角度理解RTOS的实时性RTOS&#xff08;Real Time Operation System&#xff09;的一大特性就是实时性强&#xff0c;那么什么是实时性呢&#xff1f;笼统的来说&#xff0c;不是任务处理的快就叫做实时&#xff0c;实时的核心是确定性&#xff0c;又叫可预测性&#xf…

作者头像 李华