Linux 命令的执行过程分为如下 4 个步骤
1.判断路径
判断用户是否以绝对路径或相对路径的方式输入命令,是直接执行,否进行第二步
2.检查别名
我们知道Linux 系统通过 alias 命令是可以给现有命令自定义别名的
其中,我们可以收到查询一个命令是否有别名
root@ubuntu:~# alias rm
bash: alias: rm: not found //rm 不是别名
root@ubuntu:~# alias ls
alias ls='ls --color=auto' //ls其实是ls --color=auto
怎么设置别名呢?
可以使用alias命令
root@ubuntu:~# alias ls='ls --color=auto'
当然也可以使用unalias命令删除别名
root@ubuntu:~# unalias ls
3.判断内部命令还是外部命令
Linux命令行解释器(又称为 Shell)会判断用户输入的命令是内部命令还是外部命令。其中,内部命令指的是解释器内部的命令,会被直接执行;而用户通常输入的命令都是外部命令,这些命令交给步骤四继续处理。
我们也可以手动查询一个命令是内部还是外部命令
root@ubuntu:~# type pwd
pwd is a shell builtin //pwd是内部命令
root@ubuntu:~# type top
top is /usr/bin/top //top是外部命令
4.查找外部命令对应的可执行文件
当我们执行外部命令时,通过PATH环境变量,告诉Shell 命令的可执行文件可能存放的位置
如果找不到,Shell 会提供用户“找不到此命令
我们也可以通过which判断某个命令的可执行文件的绝对路径
root@ubuntu:~# which pwd
/bin/pwd //
root@ubuntu:~# which top
/usr/bin/top //通过对比可以知道内部和外部命令的绝对路径的区别