在 Debian(以及所有类 Unix 系统)里,environment(环境变量) 和 PATH 的关系可以简单理解为:
PATH 是 environment 中的一个变量,用来告诉 shell 去哪里找可执行程序。
下面分层说明。
环境变量是 进程运行时的键值对集合,例如:
USER=alice
HOME=/home/alice
LANG=en_US.UTF-8
PATH=/usr/local/bin:/usr/bin:/bin
查看当前环境:
env
# 或
printenv
PATH 是一个 特殊环境变量,内容是目录列表,用 : 分隔:
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
当你在终端输入一个命令:
ls
shell 会:
PATH 中的顺序查找 lsenv | grep PATH
export PATH=$PATH:/opt/mytools
export 表示放入 当前 shell 的环境变量常见文件和加载顺序(bash 为例):
/etc/profile
~/.bash_profile
~/.bash_login
~/.profile
/etc/bash.bashrc
~/.bashrc
/etc/environment
⚠️
/etc/environment不是 shell 脚本,只能写简单的KEY=value
PATH=/tmp test.sh
只对 test.sh 生效。
PATH=$PATH:/new
只对当前 shell 变量有效,子进程看不到。
✅ 正确:
export PATH=$PATH:/new
environment 是进程的运行时环境,PATH 是其中决定“命令去哪找”的关键变量。
如果你愿意,我可以:
su / sudo 对 PATH 的影响