Linux export环境变量导出命令速查表
AI 概述
export是Bash等Shell的内建命令,用于将变量或函数导出到子进程环境。其应用场景包括设置应用程序配置、调整命令行为等。export基本语法包括创建并导出变量、导出已存在变量、列出已导出变量等。它具有当前会话有效性,且支持导出函数。通过export -n或unset可移除或重置导出。为使变量永久生效,需在Shell启动文件中添加export。调试时,可用export -p或env查看导出变量。
目录

export 是 Bash 等 Shell 的内建命令,用于将 Shell 变量标记为“导出”,使其能够被子进程(如子 Shell、脚本、外部命令)继承。在 Linux/Unix 系统中,环境变量是进程间传递配置信息的主要方式,export 正是连接当前 Shell 与子进程环境的桥梁。
export 的应用场景包括:设置应用程序的配置参数、调整命令的行为(如 LANG 影响语言)、扩展 PATH 以查找可执行文件、在脚本间共享变量等。理解 export 的工作原理,是掌握 Linux 环境变量管理和 Shell 编程的基础。
1. 基本语法
| 命令 | 说明 |
|---|---|
| export 变量名=值 | 创建变量并立即导出 |
| 变量名=值; export 变量名 | 先定义变量,再导出 |
| export 变量名 | 将已存在的 Shell 变量标记为导出 |
export -p |
列出所有已导出的变量 |
export -n 变量名 |
移除变量的导出属性(变量本身保留) |
help export |
查看 Bash 中 export 的帮助信息 |
2. 导出变量
| 命令 | 说明 |
|---|---|
export APP_ENV=production |
导出单个变量 |
PORT=8080; export PORT |
分步定义和导出 |
export PATH="$HOME/bin:$PATH" |
扩展 PATH 变量(添加用户目录) |
export EDITOR=vim |
设置默认编辑器(git 等命令会读取) |
export LANG=zh_CN.UTF-8 |
设置语言环境变量 |
export PS1='[\u@\h \W]\$ ' |
设置命令行提示符格式 |
export JAVA_HOME=/usr/lib/jvm/java-11 |
设置 Java 环境变量 |
3. 当前会话有效
这些更改仅在当前 Shell 会话中有效,退出终端或新开窗口后失效。
| 命令 | 说明 |
|---|---|
export DEBUG=true |
在当前会话启用调试模式 |
export API_URL=https://api.example.com |
设置当前会话的 API 端点 |
export PATH="$HOME/.local/bin:$PATH" |
临时添加用户命令目录 |
echo "$API_URL" |
验证变量已设置 |
bash -c 'echo "$API_URL"' |
确认子 Shell 继承变量 |
env | grep API_URL |
使用 env 命令查看环境变量 |
4. 导出函数
Bash 支持将函数导出到子 Bash Shell 中。
| 命令 | 说明 |
|---|---|
greet() { echo "你好,$1"; } |
定义 Shell 函数 |
export -f greet |
导出函数 |
bash -c 'greet "张三"' |
在子 Shell 中运行导出的函数 |
export -nf greet |
移除函数的导出属性 |
unset -f greet</td> |
删除函数定义 |
5. 移除或重置导出
| 命令 | 说明 |
|---|---|
export -n VAR |
移除 VAR 的导出属性(变量本身保留,但子进程不再继承) |
unset VAR |
彻底删除变量 |
unset -f function_name |
删除函数 |
export -n PATH |
停止导出 PATH(谨慎操作,可能影响子命令执行) |
| VAR=新值 | 重新赋值但不影响导出状态 |
env | grep '^变量名=' |
验证变量是否仍在环境中 |
6. 常用环境变量示例
| 变量名 | 说明与示例 |
|---|---|
PATH |
命令搜索路径:export PATH="$HOME/bin:$PATH" |
HOME |
用户家目录:通常已自动设置 |
USER |
当前用户名 |
SHELL |
当前 Shell 路径 |
LANG |
语言环境:export LANG=zh_CN.UTF-8 |
LC_ALL |
覆盖所有 locale 设置:export LC_ALL=C(用于脚本提高可预测性) |
| EDITOR | 默认编辑器:export EDITOR=vim |
| PAGER | 默认分页器:export PAGER=less |
| PS1 | 命令行提示符格式 |
TZ |
时区设置:export TZ=’Asia/Shanghai’ |
http_proxy |
HTTP 代理:export http_proxy=http://proxy:8080 |
JAVA_HOME |
Java 安装目录 |
PYTHONPATH |
Python 模块搜索路径 |
7. 使变量永久生效
在 Shell 启动文件中添加 export 行,使变量在每次登录时自动设置。
| 文件 | 说明 |
|---|---|
~/.bashrc |
交互式非登录 Bash Shell(最常用,每个新终端都加载) |
~/.bash_profile |
登录 Bash Shell(通常会source .bashrc) |
~/.profile |
兼容各 Shell 的登录文件(Bash 登录时也会读取) |
/etc/environment |
系统级环境变量文件(语法为变量名=值,不支持 export) |
/etc/profile |
系统级登录脚本 |
/etc/bash.bashrc |
系统级 bashrc 文件 |
source ~/.bashrc |
编辑后重新加载配置文件 |
示例:在~/.bashrc中添加
export EDITOR=vim export PATH="$HOME/.local/bin:$PATH" export PS1='[\u@\h \W]\$ '
8. 实用组合模式
| 命令/脚本 | 说明 |
|---|---|
export $(cat .env | xargs) |
从.env 文件批量导入环境变量 |
env -i bash -c 'export VAR=值; 命令' |
在干净环境中运行命令 |
export DEBUG=1 && ./script.sh |
为单个脚本执行设置临时变量 |
(export SECRET=123; ./app) |
在子 Shell 中导出变量(不影响父 Shell) |
printenv | grep -E 'PATH|HOME' |
查看特定环境变量 |
diff <(export -p) <(bash -c 'export -p') |
比较当前和子 Shell 的环境变量 |
9. 常用选项速查
| 选项 | 完整名称 | 说明 |
|---|---|---|
-p |
--print |
列出所有已导出的变量 |
-n |
--no-create |
移除变量的导出属性 |
-f |
--functions |
操作函数而非变量 |
-nf |
- |
移除函数的导出属性 |
10. 故障排查
| 问题 | 解决方法 |
|---|---|
| 子进程看不到变量 | 确认使用了export;检查是否在同一 Shell 执行;子进程类型是否继承环境 |
| 新终端中变量消失 | 将export行添加到~/.bashrc或相应启动文件;重启终端或source ~/.bashrc |
| 函数在子 Shell 中不可用 | 使用export -f函数名导出;确保子 Shell 是Bash |
export -n后变量还在但子进程可见 |
export -n仅移除导出属性,如需完全删除用 unset |
| 变量已设置但程序忽略 | 检查程序实际读取的变量名;有些程序读取配置文件而非环境变量 |
| PATH 被覆盖导致命令找不到 | 不要写成export PATH=/new/path(会覆盖),应写成export PATH=/new/path:$PATH |
export: command not found |
export 是内建命令,不应该出现此错误;确认 Shell 类型(如 sh 可能不支持export -f) |
| 环境变量包含特殊字符 | 使用引号:export VAR=”值包含 空格和$符号” |
温馨提示: export的生命周期遵循“当前 Shell 及其子进程”原则。在终端设置的 export 仅对当前会话有效,退出后失效。要使变量永久生效,必须写入 Shell 配置文件中。调试时可用 export -p 查看当前所有导出变量,用 env 命令查看完整的环境变量。在脚本中,建议在文件开头集中 export 所需变量,提高可读性和可维护性。
以上关于Linux export环境变量导出命令速查表的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » Linux export环境变量导出命令速查表
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » Linux export环境变量导出命令速查表
微信
支付宝