Linux环境变量配置
Linux环境变量配置
什么是环境变量
环境变量是系统运行时的动态值,用于存储系统配置、路径信息等。它们可以被子进程继承。
环境变量类型
按作用范围分类
| 类型 | 说明 |
|---|---|
| 局部变量 | 仅在当前Shell会话中有效 |
| 全局变量 | 对所有用户和子进程有效 |
| Shell变量 | Shell自身的变量 |
常用环境变量
| 变量 | 说明 |
|---|---|
| HOME | 用户主目录 |
| USER | 当前用户名 |
| PATH | 可执行文件搜索路径 |
| SHELL | 当前Shell类型 |
| LANG | 系统语言 |
| JAVA_HOME | Java安装目录 |
| CLASSPATH | Java类路径 |
查看环境变量
# 查看所有环境变量
env
printenv
# 查看特定变量
echo $PATH
echo $HOME
# 使用printenv
printenv PATH
设置环境变量
临时设置
# 当前会话有效
export MY_VAR="hello"
MY_VAR="hello" # 仅局部变量
# 取消设置
unset MY_VAR
永久设置
用户级别
# ~/.bashrc 或 ~/.bash_profile
export MY_VAR="hello"
export PATH=$PATH:/opt/myapp/bin
# 生效
source ~/.bashrc
系统级别
# /etc/environment
MY_VAR="hello"
# /etc/profile.d/ 目录
cat > /etc/profile.d/myenv.sh << 'EOF'
export MY_VAR="hello"
export JAVA_HOME=/usr/local/java
EOF
PATH变量详解
PATH定义了系统查找可执行文件的目录顺序。
# 查看PATH
echo $PATH | tr ':' '\n'
# 添加目录到PATH
export PATH=$PATH:/new/directory
# 永久添加
echo 'export PATH=$PATH:/opt/myapp/bin' >> ~/.bashrc
优先级
# 按顺序查找
which command # 查找命令位置
type command # 判断命令类型
配置文件加载顺序
登录Shell
/etc/profile
~/.bash_profile
~/.bash_login
~/.profile
非登录Shell
/etc/bash.bashrc
~/.bashrc
实践:配置Java环境
#!/bin/bash
# 设置JAVA_HOME
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
# 验证
java -version
javac -version
永久配置
# 添加到/etc/profile.d/
cat > /etc/profile.d/java.sh << 'EOF'
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
EOF
source /etc/profile.d/java.sh
环境变量应用
在脚本中使用
#!/bin/bash
echo "当前用户: $USER"
echo "主目录: $HOME"
echo "系统: $HOSTNAME"
echo "Java: $JAVA_HOME"
在程序中获取
import os
print(os.environ.get('MY_VAR'))
print(os.path.expanduser('~'))
总结
环境变量是Linux系统配置的重要组成部分。正确设置环境变量,可以简化命令执行和程序配置。