Linux环境变量课程内容完整总结

📅 2026/7/8 4:40:13
Linux环境变量课程内容完整总结
一、环境变量基础概念定义环境变量是变量名值格式的键值对由操作系统/Shell维护用于存储会话、系统、用户环境信息脚本与程序可快速读取使用bash依靠环境变量保存工作环境数据。系统环境变量规范全大写自定义局部变量建议小写避免覆盖系统变量。bash内置默认环境变量分为Bourne原生变量、bash扩展自有变量两类核心常用变量| 变量 | 作用 ||------|------|| HOME | 当前用户家目录 || PATH | 命令搜索目录多路径用:分隔 || PWD | 当前工作目录 || PS1/PS2 | 主、次命令行提示符 || IFS | 文本分割字段符号 || RANDOM | 生成0~32767随机数 || UID/EUID | 用户真实ID、有效ID || SHELL | 当前Shell程序路径 |二、环境变量分类全局变量 局部变量1. 全局环境变量作用域当前Shell会话所有子Shell均可访问子Shell会继承父Shell全局变量子Shell修改变量仅自身生效不影响父Shell。查看命令env/printenv只查看全局环境变量echo $变量名单独打印某个变量值引用变量必须加$。2. 局部环境变量作用域仅定义它的当前Shell可见子Shell无法读取。查看命令set输出包含局部、全局、自定义所有变量自动字母排序。3. 变量创建规则赋值时变量值等号两侧不能有空格值含空格需用单/双引号包裹如varhello world重复赋值会直接覆盖原有值。三、自定义变量操作增、导出、删、永久生效1. 创建局部变量直接赋值test123仅当前终端可用子Shell读取为空。2. 转为全局变量export两步法先定义局部变量再export 变量名一步法export test全局变量特性子Shell可读取子Shell内修改该变量退出后父Shell原值不变。3. 删除变量 unset语法unset 变量名操作变量不加$读取变量才加$特性子Shell删除仅对子Shell生效父Shell变量不受影响临时变量关闭终端直接消失。4. 变量永久生效写入配置文件临时定义的变量重启Shell/系统会丢失持久化配置步骤编辑用户配置文件vim ~/.bashrc文件末尾添加export 变量值重载配置立即生效source ~/.bashrc原理每次登录启动bash会自动读取.bashrc执行内部命令。四、PATH环境变量命令搜索路径作用Shell输入命令时按PATH内目录顺序查找可执行程序目录间用冒号:分隔系统自带软件路径默认已写入PATH可直接输入命令执行。五、存储环境变量的系统/用户配置文件登录Shell会依次读取多份启动文件分为系统级、用户级两类系统全局文件所有用户生效/etc/profile系统主启动文件所有用户登录自动执行内部会加载/etc/bash.bashrc并遍历/etc/profile.d/*.sh脚本用户私有隐藏文件仅当前用户生效家目录下~/.bash_profile/~/.bash_login/~/.profile登录Shell加载~/.bashrc交互式Shell必加载.profile会主动引入该文件自定义环境变量首选此文件文件均为.开头隐藏文件ls -a可查看。六、Bash数组变量基础特性仅支持一维数组存储多个值括号()定义元素空格分隔下标从0开始。基础语法定义arr(one two three)读取单个元素${arr[下标]}如${arr[1]}取第二个元素读取全部元素${arr[*]}数组修改与删除修改指定下标值arr[1]five删除单个元素unset arr[1]仅清空值下标保留删除整个数组unset arr。七、配套练习与课后作业三大课堂练习题练习1env/printenv/set对比查看父子Shell查看$PWD区分全局、局部变量可见性练习2export导出全局变量子Shell修改变量验证不影响父Shell练习3数组创建、修改成员、删除单个元素、删除整个数组。八、核心小结Linux环境变量分全局、局部两类核心区别是能否被子Shell继承export实现局部变量全局化unset删除变量临时变量写入.bashrc实现永久生效PATH决定系统命令检索路径可手动追加自定义程序目录bash登录时加载系统用户多层配置文件统一初始化环境变量bash支持一维数组可批量存储、修改、删除多组数据。