在 Debian(以及大多数 Linux 发行版)中,env 命令用于显示或设置环境变量并运行程序。它不依赖 shell 的环境变量机制,常用于脚本、cron、sudo、测试环境等场景。
下面分常见用法说明。
env
输出示例:
USER=root
HOME=/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
LANG=en_US.UTF-8
✅ 等价于 printenv
env | grep PATH
或
printenv PATH
env 环境变量=值 命令
env LANG=zh_CN.UTF-8 date
仅对 date 生效,不影响当前 shell。
-i:忽略当前环境变量env -i bash
此时 bash 中几乎没有任何环境变量。
env -i PATH=/usr/bin:/bin ls
sudo env PATH=$PATH command
* * * * * env PATH=/usr/local/bin:/usr/bin python3 test.py
#!/usr/bin/env bash
PATH 中的 bash✅ 推荐写法
| 参数 | 说明 |
|---|---|
-i |
忽略当前环境变量 |
-u 变量名 |
删除指定环境变量 |
VAR=value |
设置环境变量 |
| 无参数 | 显示当前环境变量 |
export PATH=/usr/local/bin:$PATH
✅ 只在当前 shell 生效
env PATH=/usr/local/bin ls
✅ 只对命令生效,不影响 shell
env LANG=C ls
env http_proxy=http://127.0.0.1:7890 curl ipinfo.io
如果你愿意,我可以:
#!/usr/bin/envenv / printenv / export 的底层区别