在 CentOS(以及大多数 Linux 发行版)里,env 本身不是一个“加载文件”的命令,而是用来查看或设置环境变量的。
你可能是想问以下几种常见情况之一,我分别说明:
1️⃣ 用 env 加载并运行某个脚本/命令(临时环境变量)
env FILE=/tmp/test.txt sh test.sh
意思是:
- 临时设置环境变量
FILE=/tmp/test.txt - 然后执行
test.sh
⚠️ 只在当前命令生效,不影响当前 shell。
2️⃣ 加载环境配置文件(最常见)
✅ 使用 source(推荐)
source /path/to/envfile
或简写:
. /path/to/envfile
示例 envfile 内容:
export JAVA_HOME=/usr/java
export PATH=$PATH:$JAVA_HOME/bin
✅ 当前 shell 立即生效
✅ 常用于:
.bashrc.bash_profile- 自定义 env 文件
3️⃣ 登录时自动加载(CentOS 用户环境)
用户级
vi ~/.bashrc
末尾加:
source /path/to/envfile
然后:
source ~/.bashrc
系统级(所有用户)
vi /etc/profile.d/myenv.sh
内容示例:
export MY_VAR=hello
重启或重新登录后生效。
4️⃣ 在 systemd 服务中加载 env 文件
CentOS 7+ 常用:
[Service]
EnvironmentFile=/etc/sysconfig/myapp
ExecStart=/usr/bin/myapp
5️⃣ Docker / 容器场景(补充)
env $(cat .env | xargs) python app.py
✅ 总结
| 目的 | 命令 |
|---|---|
| 当前 shell 加载 | source file |
| 临时运行命令 | env K=V command |
| 开机自动 | /etc/profile.d/ |
| 服务加载 | EnvironmentFile |
如果你能说清楚:
- 是 shell / 服务 / Docker / crontab
- 是 用户级还是系统级
我可以给你更精确的示例。