Linux 环境变量的添加与查看详解
Linux 环境变量的添加与查看详解
1. 什么是环境变量
环境变量(Environment Variable)是操作系统在运行时为进程提供的一个动态变量集合。它们通常包含一些配置信息,例如:
- 可执行文件搜索路径(
PATH) - 用户信息(
USER,HOME,SHELL) - 本地化设置(
LANG) - 编译器、运行时相关配置(如
JAVA_HOME,PYTHONPATH)
在 Linux 中,环境变量一般由 shell(例如 bash, zsh)管理,并会传递给子进程。
2. 查看环境变量
2.1 常用查看命令
-
printenv
用于打印当前会话的环境变量:printenv printenv PATH # 查看指定变量 -
env
不带参数时可以显示所有环境变量:env env | grep PATH -
echo与$引用
使用$变量名来查看具体值:echo $HOME echo $PATH -
set
可查看当前 shell 中的所有变量(包括 shell 变量和环境变量),通常输出很多内容:set
3. 添加环境变量
3.1 临时添加(仅在当前shell会话有效)
export 变量名=值
例子:
export PATH=$PATH:/opt/myprogram/bin
- 临时变量有效时间:直到退出当前终端。
- 临时变量不会影响其他已打开的终端,也不会在重新登录后保留。
3.2 永久添加(登录脚本)
要让环境变量在每次登录时自动生效,可以将其写入用户的 shell 配置文件:
~/.bashrc(交互式、非登录 shell)~/.bash_profile或~/.profile(登录 shell)
例:
# 在 ~/.bashrc 中添加
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$PATH:$JAVA_HOME/bin
保存后执行:
source ~/.bashrc
即可立即生效。
3.3 系统级环境变量
如果需要给系统上所有用户添加变量,可以修改:
/etc/environment(简单键值对,不支持 shell 语法)/etc/profile或/etc/bash.bashrc(支持export)
修改后需要重新登录,或者运行source 文件路径。
4. 删除环境变量
4.1 临时删除
unset 变量名
例:
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:
export PATH=$PATH:/opt/tools/bin
然后运行:
source ~/.zshrc
6.2 fish shell
fish 不直接使用 export,而是:
set -x PATH $PATH /opt/tools/bin
若希望永久保存:
set -Ux PATH $PATH /opt/tools/bin
6.3 控制多个终端会话中的变量
如果希望所有终端共享统一变量,优先考虑修改系统全局配置文件或用户的 ~/.bashrc / ~/.zshrc,并确保登录方式统一。
7. 总结
- 临时变量:
export name=value,仅当前终端有效。 - 永久变量:写入 shell 配置文件(如
~/.bashrc或/etc/profile)。 - 查看变量:
echo $VAR、printenv、env。 - 删除变量:
unset VAR。 - 不同 shell 设置方式略有差异,需按具体终端类型调整。
