Linux 中的 export 命令:设置 Bash 环境变量

在 Linux 里不管是装 JDK、Go、Node,还是配置命令路径、自定义系统参数,几乎都会用到 export。很多人只会照着教程复制,却不知道它到底干嘛的、临时和永久有啥区别、配置完为什么不生效。

今天就用很好理解的方式,把 export 和环境变量一次性讲清楚,看完你自己就能配、能改、能排查问题,Ubuntu、CentOS 所有发行版通用。

先说最简单的概念:

环境变量就是系统全局能用的 “变量”,比如你装了个软件,想在任何目录都能直接敲命令,就要把它加到 PATH 里,这就是靠 export 实现的。


先看当前有哪些环境变量

想看看系统现在有哪些环境变量,直接用:

env

或者只看某一个,比如 PATH:

echo $PATH
echo $HOME
echo $LANG

看到前面带 $ 符号的,基本都是环境变量。


export 最基本用法:临时设置环境变量

最简单的格式就是:

export 变量名="变量值"

比如我想临时加一个路径到 PATH:

export PATH=$PATH:/usr/local/myapp/bin

这样当前终端里,就能直接用 myapp 目录下的命令了。

再比如自定义一个变量:

export MY_VERSION="1.0.0"

然后直接输出:

echo $MY_VERSION

重点:这种 export 只在当前终端窗口有效

关掉终端、重新登录,就失效了。


让环境变量只对当前用户永久生效

想关掉终端还在,就写到用户的配置文件里。

最常用的是 ~/.bashrc

vim ~/.bashrc

在最后面加上:

export PATH=$PATH:/usr/local/myapp/bin
export MY_DIR="/data/files"
export GO111MODULE=on

保存后让它立即生效:

source ~/.bashrc

这样以后不管开多少窗口、重登多少次,都有效。

有些系统也会写到 ~/.profile,用法一样,看你习惯哪个。


对所有用户生效(系统级环境变量)

如果你希望整个服务器所有用户都能用这个变量,就改系统配置:

sudo vim /etc/profile

同样在末尾加 export:

export PATH=$PATH:/opt/app/bin

生效方式:

source /etc/profile

或者重启一下也可以。


常见实用例子

1. 给 Go 配置环境变量

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

2. 给 Java 配置 JAVA_HOME

export JAVA_HOME=/usr/lib/jvm/default-java
export PATH=$PATH:$JAVA_HOME/bin

3. 临时修改语言环境

export LANG=en_US.UTF-8
export LANG=zh_CN.UTF-8

4. 取消一个环境变量

unset MY_VERSION

容易踩坑的小细节

  • 配置 PATH 时一定要写 $PATH: 在前面,不然会覆盖系统原有命令。
  • 修改配置文件后必须 source 或重新登录,不然不会立即生效。
  • 脚本里用 export,只在脚本内部有效,不会影响外部终端。

简单总结一下:

  • 临时用:直接 export 变量=值
  • 当前用户永久:写进 ~/.bashrc 并 source
  • 所有用户永久:写进 /etc/profile
  • 查看:echo $变量名
  • 删除:unset 变量名

export 看着简单,其实是 Linux 配置软件、环境、脚本的基础中的基础,弄懂它,以后装什么工具都不会再懵了。

本文首发于 58Linux技术博客,专注Ubuntu桌面使用、Linux服务器运维与网站搭建实战。

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress