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 设置方式略有差异,需按具体终端类型调整。
相关推荐
大白菜132414 分钟前
进程的信号
linux
XH-hui16 分钟前
【打靶日记】群内靶机Secure
linux·网络安全
Shingmc333 分钟前
【Linux】进程控制
linux·服务器·算法
视觉装置在笑71344 分钟前
Shell 变量基础与进阶知识
linux·运维
Web极客码1 小时前
如何通过命令行工具检查 Linux 版本信息
linux·运维·服务器
欢鸽儿2 小时前
Vitis】Linux 下彻底清除启动界面 Recent Workspaces 历史路径
linux·嵌入式硬件·fpga
繁华似锦respect2 小时前
C++ 智能指针底层实现深度解析
linux·开发语言·c++·设计模式·代理模式
hweiyu003 小时前
Linux 命令:dd
linux
---学无止境---3 小时前
i386 架构中断管理函数详解
linux·架构
kkkkkkkkl243 小时前
Prometheus指标入门详解
linux·服务器