第六次作业Linux环境变量

📅 2026/7/7 13:02:48 👁️ 阅读次数 📝 编程学习
第六次作业Linux环境变量

Linux环境变量 - 课堂笔记总结

1. 什么是环境变量

定义:在程序外部设置的变量,由名称/值对组成(VARIABLE_NAME=value),用于存储shell会话和工作环境的信息。

分类:
全局环境变量:对shell会话和所有子shell可见
局部环境变量:只对创建它们的shell可见

命名规范:
- 系统环境变量:全大写字母(如HOME、PATH)
- 用户自定义变量:建议使用小写字母(避免冲突)

2. 查看环境变量的命令

env:查看全局环境变量
printenv:查看全局环境变量(可指定单个变量)
set:查看所有变量(环境变量 + 局部变量 + 函数定义)

查看单个变量:
printenv HOME
echo $HOME

关键点:
引用变量用$(如echo $HOME)
操作变量不用$(如unset myvar)

3. 设置用户定义变量

局部变量:
myvar="Hello World"
myvar=Hello

注意事项:
等号两边不能有空格
字符串有空格需加引号

全局变量(环境变量):
myvar="Global variable"
export myvar

或直接创建并导出:
export myvar="Global variable"

关键特性:
子shell继承父shell的全局变量
子shell修改变量不影响父shell(单向传递)

4. 删除环境变量

unset myvar

验证是否删除:
echo $myvar

5. PATH环境变量

作用:定义shell查找命令的目录列表(冒号分隔)

查看当前PATH:
echo $PATH

添加新目录到PATH(临时生效):
PATH=$PATH:/new/directory

使脚本可直接运行:
chmod u+x myscript.sh
PATH=$PATH:$(pwd)
myscript.sh

注意:对PATH的修改只在当前shell会话有效,重启后失效。

6. 定位系统环境变量(启动文件)

登录shell启动文件加载顺序:
/etc/profile
/etc/profile.d/*.sh
$HOME/.bash_profile 或 $HOME/.bash_login 或 $HOME/.profile(按顺序只执行第一个)
$HOME/.bashrc

常用启动文件:
/etc/profile:系统级,所有用户登录时执行
$HOME/.bash_profile:用户级登录shell配置
$HOME/.bashrc:用户级交互式shell配置(最常用)

7. 数组变量

创建数组:
mytest=(one two three)

引用数组元素(索引从0开始):
echo $mytest 显示第一个元素:one
echo ${mytest[1]} 显示第二个元素:two
echo ${mytest[*]} 显示所有元素:one two three

修改元素:
mytest[2]=five

删除元素:
unset mytest[1]

删除整个数组:
unset mytest

核心实践总结

查看全局变量:env 或 printenv
查看所有变量:set
设置局部变量:var=value
设置全局变量:export var=value
删除变量:unset var
引用变量:$var
修改PATH:PATH=$PATH:/newdir

关键理解

父子shell继承关系:
- 父shell到子shell:全局变量(export)可继承
- 父shell到子shell:局部变量不可继承
- 子shell修改到父shell:不受影响(单向)

临时性:通过命令行设置的环境变量在shell退出或系统重启后失效。

持久化:需将变量设置在启动文件中(如~/.bashrc)才能永久生效。

课堂作业