微信公众号:51 码农网
专业编程问答社区
www.51manong.com
用 ls 命令举例,在 linux 中,执行 ls 命令,会经过几个查找过程寻找到 ls 程序。
alias 中查找 alias 可以用来设置命令别名,例如
alias la='ls -lrt'
alias ls='ls --color=auto'
如果在这里找到了,就会执行下去。如果没有找到,就会继续寻找下去
内置命令中查找
在 shell 中,如果是内置命令,则会直接执行,否则还会继续寻找下去。用 help 命令看有哪些内置命令。
[root@iz2ze720onwdpm0gqiky35z ~]# help
....
type [-afptP] name [name ...]
pwd [-LP]
echo [-neE] [arg ...]
....
通过 type 命令查看命令类型
[root@iz2ze720onwdpm0gqiky35z ~]# type pwd
pwd is a shell builtin
PATH 中查找
shell 中输入 ls 命令,首先它会从 PATH 环境变量中查找。看看 PATH 的内容:
[root@iz2ze720onwdpm0gqiky35z ~]# echo $PATH
/otyu/java/jdk1.7.0_75/bin:/otyu/java/jdk1.7.0_75/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
它会在这些路径下寻找 ls 程序,按照路径找到的第一个 ls 程序会被执行。我们在看一下 ls 命令的位置:
[root@iz2ze720onwdpm0gqiky35z ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
可以看出 ls 是在 /usr/bin/ 目录下的。如果将 ls 命令移到其他目录,执行 ls 命令,就提提示你没有安装这个程序或者没找到命令。