Linux exp命令,全称为export,是Linux/Unix系统中一个非常重要的内置命令,主要用于设置或显示环境变量,环境变量是操作系统用来存储有关运行环境信息的对象,它们可以被当前shell及其启动的子进程访问,对于系统配置、脚本编写和程序运行都起着至关重要的作用,理解并熟练使用exp命令,是提升Linux系统管理效率的关键一步。

exp命令的基本功能与语法
exp命令的核心功能是将变量设置为环境变量,与普通shell变量不同,环境变量会传递给由当前shell启动的任何子进程,这使得环境变量成为在不同程序之间共享配置信息的标准方式,exp命令的基本语法非常简洁:
export [-fn] [name[=word]] ... export -p
参数说明如下:
-f:表示后面的name是一个函数名,而不是变量名,用于将函数导出为环境变量(较少使用)。-n:表示取消每个name的导出属性,即从环境中删除指定的变量,但变量本身仍然存在于当前shell中。name[=word]:指定要设置的环境变量名及其值,如果省略=word,则该变量的值将被设置为当前shell的值。-p:显示所有导出的环境变量及其值,以export varname=value的形式列出,这对于调试和查看当前环境非常有用。
exp命令的使用场景与实例
exp命令的使用场景广泛,从简单的临时变量设置到复杂的环境配置管理,都离不开它,以下是一些常见的使用实例:
设置临时环境变量
在当前shell会话中临时设置环境变量,适用于临时测试或特定任务,设置JAVA_HOME变量指向Java安装目录:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
设置后,当前shell及其后续启动的子进程都能访问JAVA_HOME变量,但请注意,这种设置仅在当前会话有效,关闭终端后即失效。
设置带值的环境变量
可以在导出变量的同时为其赋值,设置PATH变量以包含自定义脚本目录:
export PATH=$PATH:/home/user/scripts
这行代码将/home/user/scripts目录添加到现有的PATH变量中,确保系统能在该目录下查找可执行文件。

查看已导出的环境变量
使用export -p命令可以清晰地列出所有已导出的环境变量及其值,方便调试和确认环境配置:
export -p
输出结果通常包含大量系统预设变量,如SHELL, USER, HOME, PATH等。
取消环境变量的导出
如果需要将某个环境变量恢复为普通shell变量(不传递给子进程),可以使用export -n命令:
export -n MY_VAR
MY_VAR在当前shell中仍然可用,但不会传递给新启动的子进程。
环境变量的持久化配置
虽然export命令可以方便地设置临时环境变量,但在实际应用中,我们更希望这些配置能够永久生效,这需要将export命令写入特定的配置文件中,根据不同的shell和需求,配置文件的选择也有所不同:
| 配置文件 | 适用场景 | 说明 |
|---|---|---|
/etc/environment |
所有用户,所有shell | 用于设置系统级别的全局环境变量,无需export关键字,格式为VARNAME=value。 |
/etc/profile |
所有用户,登录shell | 系统级的登录shell初始化文件,所有用户登录时都会执行。 |
~/.bash_profile 或 ~/.profile |
特定用户,登录shell | 用户级的登录shell初始化文件,仅对当前用户生效,优先级高于/etc/profile。 |
~/.bashrc 或 ~/.zshrc |
特定用户,交互式shell | 用户级的交互式shell配置文件,每次打开新终端时都会执行,常用于设置别名和临时变量。 |
要为当前用户永久添加自定义脚本目录到PATH,可以在~/.bashrc文件末尾添加以下内容:
export PATH=$PATH:/home/user/scripts
保存后,执行source ~/.bashrc或重新打开终端即可生效。

exp命令的进阶技巧
-
条件导出:结合
if语句,可以实现条件性地导出变量,仅在变量未设置时进行导出:if [ -z "$MY_VAR" ]; then export MY_VAR="default_value" fi -
函数导出:虽然不常用,但
export -f可以用于将shell函数传递给子进程,这在需要子shell使用父shell定义的复杂逻辑时非常有用。 -
变量替换:在导出变量时,可以利用bash的参数扩展功能进行动态赋值,获取当前工作目录并导出:
export CURRENT_DIR=$(pwd)
export命令是Linux环境变量管理的基石,它连接了shell与子进程之间的信息传递,通过灵活运用export命令,无论是进行系统级配置、编写可移植的脚本,还是管理开发环境,都能变得更加高效和可靠,理解其基本语法、使用场景以及如何实现变量的持久化,是每一位Linux用户和系统管理员必备的技能,掌握export,就是掌握了控制Linux运行环境的一把钥匙。


















