在 CentOS(以及大多数 Linux 发行版)里,env 是一个极其基础的命令,通常由 coreutils 提供,路径一般是:
/usr/bin/env
如果你遇到 “env: command not found” 或 “env 命令找不到”,常见原因和解决办法如下:
最常见情况是你或某个脚本把 PATH 改坏了。
检查:
echo $PATH
正常应包含:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
如果看不到 /usr/bin,就会找不到 env。
✅ 临时恢复:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
✅ 永久修复(看你是哪种 shell):
vi ~/.bashrc
加上:export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
然后:source ~/.bashrc
#!/usr/bin/env xxx例如:
#!/usr/bin/env python3
如果 系统里没有 /usr/bin/env,就会报:
/usr/bin/env: No such file or directory
本质不是 python 的问题,而是 env 本身不在。
确认是否存在:
ls -l /usr/bin/env
如果不存在,说明被误删了。
✅ 重新安装 coreutils:
yum reinstall coreutils -y
或:
rpm -qf /usr/bin/env
在:
可能根本没装 coreutils。
✅ 解决:
yum install coreutils -y
sudo env
可能报错,因为 sudo 默认重置 PATH。
✅ 解决:
sudo /usr/bin/env
或修改:
visudo
添加:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
which env
type env
ls -l /usr/bin/env
echo $PATH
CentOS 中 env 找不到,99% 是 PATH 被改坏或 sudo 重置导致,极少数才是真被删。
如果你愿意,可以把 具体报错信息 或 你执行的命令 发出来,我可以精准帮你定位。