Linux命令执行过程

Linux命令执行过程教程

Linux 中,从我们敲入一个命令,到按下回车这个命令被执行,大概经过了四个步骤,分别为:判断路径、检查别名、判断是 内部命令 还是外部命令和查找外部命令对应的可执行文件。

Linux命令执行过程详解

判断路径

判断用户是否以绝对路径或相对路径的方式输入命令(如 /bin/ls),如果是的话直接执行。

检查别名

Linux 系统会检查用户输入的命令是否为 “别名命令”。因为,在 Linux 中,可以通过 alias 命令给现有命令自定义别名的,即用一个自定义的命令名称来替换原本的命令名称。我们输入以下命令,查看 ls 命令的别名,具体命令如下:

alias ls

运行后,终端输出如下:

16_Linux命令执行过程.png

我们看到,输出了 ls 命令的具体的别名信息了,即,我们执行 ls 命令时,其实执行的是 ls --color=auto 这个命令,我们再次,使用 alias 命令,查看 rm 命令的别名,具体命令如下:

alias rm

运行后,终端输出如下:

17_Linux命令执行过程.png

我们看到,同样,rm 命令也输出了其别名信息,因为,我们在执行 rm 命令时,其实执行的是 rm -i 命令,这就是为什么,我们使用 rm 命令删除文件时,会给出提示的原因。

判断是内部命令还是外部命令

Linux 命令行解释器(又称为 Shell)会判断用户输入的命令是内部命令还是外部命令。如果是内部命令,会被直接执行,而如果是外部命令,这些命令交给步骤四继续处理。

查找外部命令对应的可执行文件

当用户执行的是外部命令时,系统会在指定的多个路径中查找该命令的可执行文件,而定义这些路径的变量,就称为 PATH 环境变量,其作用就是告诉 Shell 待执行命令的可执行文件可能存放的位置。

也就是说,Shell 会在 PATH 变量包含的多个路径中逐个查找,直到找到为止(如果找不到,Shell 会提供用户 “找不到此命令”)。

Linux命令执行过程总结

在 Linux 中,从我们敲入一个命令,到按下回车这个命令被执行,大概经过了四个步骤,分别为:判断路径、检查别名、判断是内部命令还是外部命令和查找外部命令对应的可执行文件。