插件窝 干货文章 Linux环境变量有哪些

Linux环境变量有哪些

变量 环境 Shell 当前 380    来源:    2025-05-02

在Linux系统中,环境变量(Environment Variables)是动态命名的值,用于存储系统或应用程序的配置信息。它们可以被Shell及其子进程访问,是系统行为控制和脚本编程的重要工具。以下是Linux环境变量的分类及常见示例:


一、环境变量分类

  1. 系统级环境变量

    • 对所有用户生效,通常定义在以下文件中:
      • /etc/environment
      • /etc/profile
      • /etc/profile.d/*.sh
      • /etc/bashrc(部分发行版)
  2. 用户级环境变量

    • 仅对当前用户生效,定义在用户主目录的文件中:
      • ~/.bashrc
      • ~/.bash_profile
      • ~/.profile
      • ~/.bash_logout(退出时生效)
  3. 临时环境变量

    • 仅在当前Shell会话中有效,退出后失效: bash export VAR_NAME=value # 临时设置

二、常见环境变量示例

变量名 作用描述
PATH 系统可执行文件的搜索路径(冒号分隔),例如 /usr/local/bin:/usr/bin
HOME 当前用户的主目录路径(如 /home/username
USER / LOGNAME 当前登录用户名
SHELL 当前用户的默认Shell(如 /bin/bash
PWD 当前工作目录路径
LANG / LC_* 系统语言和本地化设置(如 en_US.UTF-8
TERM 终端类型(如 xterm-256color
DISPLAY X11图形界面的显示地址(如 :0
PS1 Shell提示符格式(如 \u@\h:\w\$
EDITOR 默认文本编辑器(如 vimnano
TZ 时区设置(如 Asia/Shanghai
LD_LIBRARY_PATH 动态链接库的搜索路径(慎用,可能引发安全问题)
HTTP_PROXY 网络代理地址(如 http://proxy.example.com:8080

三、环境变量操作命令

  1. 查看所有环境变量

    env        # 列出所有环境变量
    printenv   # 同上(或查看特定变量,如 `printenv PATH`)
    
  2. 查看单个变量

    echo $PATH  # 输出PATH的值
    
  3. 设置临时变量

    export MY_VAR="test"  # 当前Shell生效
    
  4. 永久设置变量

    • ~/.bashrc~/.profile 中添加:
      bash export MY_VAR="test"
    • 然后运行:
      bash source ~/.bashrc # 立即生效
  5. 删除变量

    unset MY_VAR  # 移除变量
    

四、注意事项

  1. 优先级问题

    • 用户级配置(如 ~/.bashrc)会覆盖系统级配置(如 /etc/environment)。
    • 临时变量优先级最高。
  2. 安全风险

    • 避免将敏感信息(如密码)直接存储在环境变量中,建议使用专用工具(如 vault)。
  3. 作用域差异

    • 在Shell脚本中定义变量时,默认是局部变量,需用 export 提升为环境变量。
  4. 调试技巧

    • 使用 envprintenv 检查变量是否生效。
    • 通过 echo $? 查看上一条命令的退出状态(0表示成功)。

五、扩展知识

  • $PATH 的修改:添加自定义路径到 PATH 的示例: bash export PATH=$PATH:/your/custom/path
  • 环境变量与Shell变量区别
    • 环境变量可被子进程继承,普通Shell变量仅限当前Shell。

通过合理配置环境变量,可以高效管理系统行为、开发环境及应用程序配置。