Linux环境变量核心知识点与操作指南
一、 Linux 环境变量核心知识点总结什么是环境变量环境变量Environment Variable是操作系统或微服务在程序外部设置的变量通常由“名称/值对”VARIABLE_NAMEvalue组成。Bash Shell 利用这一特性在内存中存储关于 Shell 会话和工作环境的信息使得程序或脚本能够快速、便捷地访问这些数据。.变量的分类与作用域在 Bash Shell 中环境变量主要分为以下两类全局变量全局环境变量对于当前的 Shell 会话以及所有生成的子 Shell 都是可见的。系统环境变量通常使用全大写字母命名以区别于普通用户变量。局部变量仅在定义它们的当前 Shell 进程中可见对其生成的子 Shell 不可见。默认的系统环境变量Bash Shell 继承了 Unix Bourne Shell 的变量体系并扩展了部分自有变量。常见的系统变量包括HOME当前用户的主目录。PATHShell 查找命令的目录列表由冒号分隔。PWD当前工作目录。USER / UID / EUID当前用户的真实用户 ID 或有效用户 ID。SHELL当前 Shell 实例的全路径名。RANDOM返回一个 032767 的随机数。常用操作命令查看全局变量使用 env 或 printenv 命令。查看所有变量含局部使用 set 命令结果按字母顺序排序。引用变量值在变量名前加上 $ 符号如 $HOME常用于 echo 命令或作为命令行参数。创建局部变量使用 变量名值 赋值注意等号两侧不能有空格含空格的字符串需用单引号包裹。创建全局变量先创建局部变量再使用 export 变量名 将其导出到全局环境。删除变量使用 unset 变量名注意操作变量时不需要加 $ 符号。二、 课后练习题解答与实操验证练习题 1变量查看与子 Shell 继承验证任务要求分别查看 env、printenv、set 的输出在父 Shell 和子 Shell 中分别查看 $PWD 变量。实操解答执行 env 或 printenv仅输出全局环境变量。执行 set输出当前进程的所有变量包含局部变量、全局变量及 Shell 函数等。在父 Shell 中执行 echo $PWD输出当前工作目录如 /home/zhang。输入 bash 进入子 Shell再次执行 echo $PWD输出结果与父 Shell 完全一致。结论$PWD 属于全局环境变量能够被子 Shell 完美继承。练习题 2全局变量的创建、修改与隔离性验证任务要求在父 Shell 中设置变量并导出进入子 Shell 查看并修改该变量退出子 Shell 后查看父 Shell 中的变量值。实操解答在父 Shell 中定义并导出变量bashmy_variableGlobal variableexport my_variable输入 bash 进入子 Shell执行 echo $my_variable输出为 Global variable。在子 Shell 中重新赋值my_variableNULL此时子 Shell 中的值变为 NULL。输入 exit 退出子 Shell回到父 Shell 执行 echo $my_variable。结论输出结果仍为 Global variable。这证明了在子 Shell 中对全局环境变量的修改重新赋值仅在当前子进程中生效不会反向影响父 Shell 中的变量值。附加实操局部变量的作用域与删除验证任务要求验证局部变量无法被子 Shell 继承并验证 unset 命令的作用范围。实操解答在父 Shell 中创建局部变量my_localHello World。进入子 Shell 执行 echo $my_local输出为空证明局部变量不可见。在父 Shell 中导出变量为全局变量进入子 Shell 后执行 unset my_variable。在子 Shell 中 echo $my_variable 输出为空但 exit 退出子 Shell 后父 Shell 中 echo $my_variable 依然输出原值。结论unset 命令删除变量的操作同样具有作用域隔离性在子 Shell 中删除全局变量不会影响父 Shell 中的同名变量。