Linux 环境变量的添加与查看详解

Linux 环境变量的添加与查看详解

1. 什么是环境变量

环境变量(Environment Variable)是操作系统在运行时为进程提供的一个动态变量集合。它们通常包含一些配置信息,例如:

  • 可执行文件搜索路径(PATH
  • 用户信息(USER, HOME, SHELL
  • 本地化设置(LANG
  • 编译器、运行时相关配置(如 JAVA_HOME, PYTHONPATH

在 Linux 中,环境变量一般由 shell (例如 bash, zsh)管理,并会传递给子进程。


2. 查看环境变量

2.1 常用查看命令

  1. printenv

    用于打印当前会话的环境变量:

    bash 复制代码
    printenv
    printenv PATH  # 查看指定变量
  2. env

    不带参数时可以显示所有环境变量:

    bash 复制代码
    env
    env | grep PATH
  3. echo$ 引用

    使用 $变量名 来查看具体值:

    bash 复制代码
    echo $HOME
    echo $PATH
  4. set

    可查看当前 shell 中的所有变量(包括 shell 变量和环境变量),通常输出很多内容:

    bash 复制代码
    set

3. 添加环境变量

3.1 临时添加(仅在当前shell会话有效)

bash 复制代码
export 变量名=值

例子:

bash 复制代码
export PATH=$PATH:/opt/myprogram/bin
  • 临时变量有效时间:直到退出当前终端。
  • 临时变量不会影响其他已打开的终端,也不会在重新登录后保留。

3.2 永久添加(登录脚本)

要让环境变量在每次登录时自动生效,可以将其写入用户的 shell 配置文件:

  • ~/.bashrc(交互式、非登录 shell)
  • ~/.bash_profile~/.profile(登录 shell)

例:

bash 复制代码
# 在 ~/.bashrc 中添加
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$PATH:$JAVA_HOME/bin

保存后执行:

bash 复制代码
source ~/.bashrc

即可立即生效。

3.3 系统级环境变量

如果需要给系统上所有用户添加变量,可以修改:

  • /etc/environment(简单键值对,不支持 shell 语法)
  • /etc/profile/etc/bash.bashrc(支持 export
    修改后需要重新登录,或者运行 source 文件路径

4. 删除环境变量

4.1 临时删除

bash 复制代码
unset 变量名

例:

bash 复制代码
unset TEMP_VAR

4.2 永久删除

删除配置文件中的相应定义行,然后重新登录或 source 文件。


5. 常见用途与环境变量示例

  • PATH
    影响可执行文件的搜索路径。
  • HOME
    当前用户的家目录路径。
  • *LANG / LC_ALL / LC_ **
    控制程序的语言与本地化。
  • SHELL
    用户默认 shell 类型。
  • JAVA_HOME / PYTHONPATH
    用于指定编译器或解释器的位置。
  • LD_LIBRARY_PATH
    动态链接库搜索路径。

6. 其他终端的处理方法

6.1 zsh

zsh 中添加永久环境变量可修改 ~/.zshrc

bash 复制代码
export PATH=$PATH:/opt/tools/bin

然后运行:

bash 复制代码
source ~/.zshrc

6.2 fish shell

fish 不直接使用 export,而是:

fish 复制代码
set -x PATH $PATH /opt/tools/bin

若希望永久保存:

fish 复制代码
set -Ux PATH $PATH /opt/tools/bin

6.3 控制多个终端会话中的变量

如果希望所有终端共享统一变量,优先考虑修改系统全局配置文件或用户的 ~/.bashrc / ~/.zshrc,并确保登录方式统一。


7. 总结

  • 临时变量export name=value,仅当前终端有效。
  • 永久变量 :写入 shell 配置文件(如 ~/.bashrc/etc/profile)。
  • 查看变量echo $VARprintenvenv
  • 删除变量unset VAR
  • 不同 shell 设置方式略有差异,需按具体终端类型调整。
相关推荐
蝶恋舞者6 小时前
怎样设置软件开机自启动(用的最多,最简单)
linux·运维·服务器
Dawn-bit6 小时前
Linux打包压缩与用户权限管理详解
linux·服务器·数据库
ls_elect6 小时前
PostgreSQL 18.4 SCRAM-SHA-256 认证故障诊断及修复办法
linux·数据库·postgresql
陈同学xxx7 小时前
Hermes Agent 接入飞书,在手机上随时聊天
linux·python·飞书
网络小白不怕黑7 小时前
14.VSFTP服务相关配置
linux·运维·服务器
是摆烂第一名呀7 小时前
RK3576+GMSL摄像头底层适配与调试
linux·arm开发·驱动开发·嵌入式硬件·数码相机
qetfw7 小时前
CentOS 7 配置 firewalld 防火墙
linux·运维·centos
Dovis(誓平步青云)8 小时前
《Linux CPU频率为何忽高忽低:cpufreq、idle状态与性能抖动教程》
linux·运维·服务器·spring boot·后端·生成对抗网络
小此方9 小时前
Re:Linux系统篇(四十三)信号篇·一:谁在敲进程的门?一篇带你了解信号概念与产生机制
linux·运维·驱动开发
Championship.23.2416 小时前
Linux 3.0 锁机制与故障排查详解
linux·运维·服务器