《Linux Shell 环境变量学习笔记:核心知识点与实操练习》

发布时间:2026/7/7 14:45:01
《Linux Shell 环境变量学习笔记:核心知识点与实操练习》 笔记部分一、环境变量基础环境变量存储在内存中用于保存Shell会话与运行环境信息格式为变量名值。命名规范系统内置变量默认全大写自定义局部变量建议小写避免与系统变量冲突。分为两类全局变量父Shell与所有子Shell均可读取用env、printenv查看。局部变量仅当前Shell进程可见用set可查看全部变量全局局部。二、常用操作命令查看全局变量env / printenv查看单个变量echo $变量名读取变量必须加$前缀查看全部变量set自动按字母排序导出全局变量export 变量名操作变量时不加$删除变量unset 变量名操作变量时不加$三、父子Shell继承规则全局变量可被子Shell继承读取但子Shell对变量的修改、删除均不会反向影响父Shell。局部变量作用域仅限当前进程父子Shell之间完全隔离无法互相传递。四、自定义变量规则赋值格式变量名内容等号前后不能有空格。字符串含空格时必须用单引号包裹例如myvarhello world。局部变量仅当前Shell生效进入子Shell后无法读取。五、PATH环境变量作用定义Shell搜索外部命令与可执行程序的目录范围目录间用冒号分隔。临时添加目录PATH$PATH:目标目录路径生效特性临时修改仅当前Shell进程有效关闭终端或重启系统后自动失效。六、系统启动文件持久化配置登录bash时会自动加载启动文件中的环境变量分为两类系统级/etc/profile所有用户登录时执行内部会调用/etc/bash.bashrc并遍历/etc/profile.d/下的脚本。用户级$HOME目录下登录Shell按优先级加载.bash_profile .bash_login .profile仅执行第一个找到的文件。.bashrc非登录交互式Shell加载通常会被登录文件主动调用。七、数组变量Shell环境变量支持数组形式可存储多组值。定义数组名(值1 值2 值3)元素间用空格分隔索引从0开始计数读取单个元素${数组名[索引]}读取全部元素${数组名[*]}修改元素数组名[索引]新值删除单个元素unset 数组名[索引]索引位置保留删除整个数组unset 数组名练习部分局部环境变量相关练习局部环境变量相关练习操作结果设置局部用户定义变量相关练习设置局部用户定义变量相关练习操作结果是否都能查看设置的局部变量为什么结论两种情况都无法查看对方设置的局部变量。原因局部用户定义变量的作用域仅局限于定义它的当前shell进程。Linux 中每个 shell 都是独立的进程进程之间的内存空间相互隔离1、父shell的局部变量不会自动传递给子shell进程2、子shell是独立的新进程它定义的变量只在自身进程内有效退出子shell后进程销毁变量也随之消失父进程无法访问。设置全局环境变量相关练习设置全局环境变量相关练习操作结果删除用户定义变量相关练习删除用户定义变量相关练习操作结果设置PATH环境变量相关习题设置PATH环境变量相关习题操作结果