在 CentOS(以及大多数 Linux/Unix 系统)中,env 和 PATH 的关系可以这样理解:
env 有两层含义:
用于查看或设置环境变量,并在指定环境中执行程序。
常见用法:
env # 查看当前所有环境变量
env | grep PATH
env PATH=/usr/bin:/bin mycmd # 用临时 PATH 执行 mycmd
指 shell 或进程运行时继承的一组“键值对”,例如:
HOME=/root
USER=root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
PATH 是环境变量中的一种,用于告诉 shell:
当输入一个命令时,去哪些目录里找可执行文件
示例:
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
如果命令不在 PATH 中,就必须写绝对路径:
/usr/local/nginx/sbin/nginx
简单说:
PATH 是 env 的一部分,env 包含 PATH
关系结构:
env(环境变量集合)
├── HOME
├── USER
├── LANG
├── PATH <-- 命令搜索路径
└── ...
env 显示所有环境变量(包括 PATH)PATH 本质是修改环境变量env,也就继承了 PATH/etc/profile
/etc/bashrc
~/.bash_profile
~/.bashrc
示例(临时生效):
export PATH=$PATH:/opt/myapp/bin
示例(永久生效):
echo 'export PATH=$PATH:/opt/myapp/bin' >> ~/.bashrc
source ~/.bashrc
| 项目 | env | PATH |
|---|---|---|
| 类型 | 环境变量集合 / 命令 | 单个环境变量 |
| 作用 | 管理运行环境 | 指定命令搜索路径 |
| 是否包含 | 包含 PATH | 被 env 包含 |
如果你愿意,我也可以帮你:
command not foundenv / export / source 区别