主题
Linux环境变量详解
课程介绍
接下来我们学习环境变量。环境变量是操作系统记录的键值对信息,比如PATH记录了命令搜索路径。用env命令查看所有环境变量,用$符号获取变量值,用export临时设置变量,修改配置文件可以永久生效。PATH变量很重要,添加新命令路径时要记得保留原路径。
1. 环境变量的概念
什么是环境变量?
环境变量是操作系统在运行时记录的一系列关键信息,用于辅助系统执行。无论是Windows、Linux还是Mac,都有环境变量的概念。
环境变量的特点:
- 采用键值对(KV)结构:
NAME=VALUE - 名称(键):等号左边的部分
- 值:等号右边的部分
- 用于系统和应用程序获取关键配置信息
环境变量的作用
- 记录系统运行所需的关键配置信息
- 辅助系统定位可执行程序(如PATH变量)
- 为应用程序提供配置参数
- 实现全局配置的集中管理
2. 查看环境变量:ENV命令
查看所有环境变量
使用env命令可以查看系统中所有环境变量:
bash
env查看特定环境变量
使用grep过滤特定环境变量:
bash
env | grep PATH3. 使用环境变量:$符号
获取环境变量值
使用$符号可以获取环境变量的值:
bash
echo $PATH带大括号的写法
当环境变量名与其他字符相邻时,使用大括号明确界定:
bash
echo ${PATH}abc常用环境变量示例
| 环境变量 | 含义 | 示例 |
|---|---|---|
| PATH | 命令搜索路径 | /usr/local/bin:/usr/bin:/bin |
| PWD | 当前工作目录 | /home/user |
| HOME | 当前用户主目录 | /home/user |
| USER | 当前登录用户 | user |
| SHELL | 当前使用的Shell | /bin/bash |
4. 配置环境变量
1. 临时配置(当前会话有效)
使用export命令临时设置环境变量:
bash
export MY_NAME="Linux User"验证:
bash
echo $MY_NAME
# 输出:Linux User注意: 临时环境变量在终端关闭后会失效。
2. 永久配置
2. 1 针对当前用户
编辑用户主目录下的.bashrc文件:
bash
vim ~/.bashrc在文件末尾添加:
bash
export MY_NAME="Linux User"生效配置:
bash
source ~/.bashrc2. 2 针对所有用户
编辑系统全局配置文件/etc/profile:
bash
sudo vim /etc/profile在文件末尾添加:
bash
export MY_NAME="Linux User"生效配置:
bash
source /etc/profile注意事项:
- 修改
/etc/profile需要root权限- 全局配置对所有用户生效
5. PATH环境变量详解
PATH的作用
PATH环境变量记录了系统搜索可执行程序的路径列表,多个路径之间用冒号:分隔。
示例:
bash
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games修改PATH环境变量
在原有PATH基础上添加自定义路径:
bash
export PATH=$PATH:/path/to/your/programs重要提示: 一定要保留$PATH,否则会覆盖原有搜索路径!
6. 实践操作:自定义命令路径
步骤1:创建自定义程序
bash
# 创建程序目录
mkdir -p ~/myenv
# 创建可执行脚本
cat > ~/myenv/mycommand << 'EOF'
#!/bin/bash
echo "Hello from my custom command!"
EOF
# 添加执行权限
chmod +x ~/myenv/mycommand步骤2:临时添加到PATH
bash
export PATH=$PATH:~/myenv
# 验证
mycommand
# 输出:Hello from my custom command!步骤3:永久添加到PATH
bash
# 编辑用户配置文件
vim ~/.bashrc
# 在文件末尾添加
# export PATH=$PATH:~/myenv
# 生效配置
source ~/.bashrc
# 在任意目录验证
cd /tmp
mycommand
# 输出:Hello from my custom command!7. 命令速查
| 命令 | 功能 | 示例 |
|---|---|---|
env | 查看所有环境变量 | env |
echo $NAME | 获取指定环境变量值 | echo $PATH |
export NAME=VALUE | 临时设置环境变量 | export MY_VAR="test" |
source FILE | 生效配置文件 | source ~/.bashrc |
vim ~/.bashrc | 编辑用户环境变量配置 | vim ~/.bashrc |
vim /etc/profile | 编辑全局环境变量配置 | sudo vim /etc/profile |
8. 常见问题与解决方案
| 问题 | 解决方案 |
|---|---|
| 临时环境变量关闭终端后失效 | 使用永久配置方式(修改.bashrc或/etc/profile) |
| 修改PATH后原有命令无法使用 | 检查PATH设置,确保包含$PATH |
| 配置文件修改后不生效 | 使用source命令手动生效配置 |
| 全局配置不生效 | 确保使用source /etc/profile或重新登录 |
| 自定义命令找不到 | 检查命令是否有执行权限,路径是否正确添加到PATH |
课程总结
这节课我们学了环境变量。
环境变量是键值对,记录系统关键信息: env - 查看所有环境变量 $变量名 - 获取变量值
修改环境变量: export 变量=值 - 临时生效(当前会话) 修改配置文件 - 永久生效
PATH变量很重要,记录了命令的搜索路径。 用户配置文件: ~/.bashrc 全局配置文件: /etc/profile
课后练习
- 基础题:查看系统中所有环境变量,并找出与用户相关的5个环境变量
- 进阶题:创建一个临时环境变量
MY_AGE=25,并使用echo命令显示其值 - 实战题:创建一个自定义命令
myinfo,显示当前用户名和主机名,然后将其永久添加到PATH中 - 综合题:修改PATH环境变量,将
/usr/local/sbin添加到搜索路径的最前面