我们知道查阅文件属性的指令 ls 完整文件名为:/bin/ls(这是绝对路径),那为什么可以在任何地方执行/bin/ls 这个指令呢? 为什么在任何目录下输入 ls 就一定可以显示出一些讯息而不会说找不到该 /bin/ls 指令呢? 这是因为环境变量 PATH !
当我们在执行一个指令的时候,比如ls,系统会依照 PATH 的每个 PATH 定义的目录下搜寻文件名为 ls 的可执行文件, 如果在 PATH 定义的目录中含有多个文件名为 ls 的可执行文件,那么先搜寻到的同名指令先被执行!
echo $PATH
PATH(一定是大写)这个变量的内容是由一堆目录所组成,每个目录中间用冒号(:)分割开, 每个目录是有顺序之分的。仔细看一下上面的输出,你可以发现到无论是 root 还是 vbird 都有/bin 这个目录在 PATH 变量内,所以必然就能够在任何地方执行 ls 查找到/bin/ls 执行!