为什么有时候有些命令明明有,系统却提示你无相关命令呢?
为什么我们可以在任何目录下使用ls呢?
就是因为 PATH—环境变量(一定要大写)
先来认识一下什么是环境变量,用 echo $PATH 命令
当我们使用一些命令时,系统会按照下方现实的文件顺序来查询相关文件
可以发现,普通用户和root账户的查询路径不太一样,普通用户没有任何关于sbin的文件,丹所有用户都有 /bin文件,这就是为什么在任何文件目录下都可以使用ls的原因
如果将 /bin/ls 移到 /root下呢?
现在ls不能用了,那是因为PATH里面没有/root,但可以通过绝对路径或者相对路径使用这条命令
/root/ls 或者 ./root(当前在/root)
现在可以通过添加环境变量让ls重新在任何目录下使用
PATH=$PATH:/root ()填在原有环境变量最后面)
总结:
1.不同身份默认的PATH是不同的
2.PATH是可以修改的
3.使用绝对路径或者相对路径来执行某个命令比查询PATH更准确(因为有些命令不止存在一个文件里,会有限执行PATH前面的)
4.为了安全起见,不把"."本目录加到PATH中