Linux环境变量核心知识点与操作指南
一、 Linux 环境变量核心知识点总结
- 什么是环境变量
环境变量(Environment Variable)是操作系统或微服务在程序外部设置的变量,通常由“名称/值对”(VARIABLE_NAME=value)组成。Bash Shell 利用这一特性在内存中存储关于 Shell 会话和工作环境的信息,使得程序或脚本能够快速、便捷地访问这些数据。
- .变量的分类与作用域
在 Bash Shell 中,环境变量主要分为以下两类:
全局变量(全局环境变量):对于当前的 Shell 会话以及所有生成的子 Shell 都是可见的。系统环境变量通常使用全大写字母命名,以区别于普通用户变量。
局部变量:仅在定义它们的当前 Shell 进程中可见,对其生成的子 Shell 不可见。
- 默认的系统环境变量
Bash Shell 继承了 Unix Bourne Shell 的变量体系,并扩展了部分自有变量。常见的系统变量包括:
HOME:当前用户的主目录。
PATH:Shell 查找命令的目录列表,由冒号分隔。
PWD:当前工作目录。
USER / UID / EUID:当前用户的真实用户 ID 或有效用户 ID。
SHELL:当前 Shell 实例的全路径名。
RANDOM:返回一个 0~32767 的随机数。
- 常用操作命令
查看全局变量:使用 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 中定义并导出变量:
bash
my_variable='Global variable'
export my_variable
输入 bash 进入子 Shell,执行 echo $my_variable,输出为 Global variable。
在子 Shell 中重新赋值:my_variable='NULL',此时子 Shell 中的值变为 NULL。
输入 exit 退出子 Shell,回到父 Shell 执行 echo $my_variable。





结论:输出结果仍为 Global variable。这证明了在子 Shell 中对全局环境变量的修改(重新赋值)仅在当前子进程中生效,不会反向影响父 Shell 中的变量值。
附加实操:局部变量的作用域与删除验证
任务要求:验证局部变量无法被子 Shell 继承,并验证 unset 命令的作用范围。

实操解答:
在父 Shell 中创建局部变量:my_local='Hello World'。
进入子 Shell 执行 echo $my_local,输出为空,证明局部变量不可见。
在父 Shell 中导出变量为全局变量,进入子 Shell 后执行 unset my_variable。
在子 Shell 中 echo $my_variable 输出为空,但 exit 退出子 Shell 后,父 Shell 中 echo $my_variable 依然输出原值。


结论:unset 命令删除变量的操作同样具有作用域隔离性,在子 Shell 中删除全局变量不会影响父 Shell 中的同名变量。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)