Linux命令执行过程(新手必读)
前面讲过,在 Linux 系统中“一切皆文件”,Linux 命令也不例外。那么,当编辑完成 Linux 命令并回车后,系统底层到底发生了什么事情呢? 简单来说,Linux 命令的执行过程分为如下 4 个步骤。 1) 判断路径判断用户是否以绝对路径或相对路径的方式输入命令(如 /bin/ls),如果是的话直接执行。2) 检查别名Linux 系统会检查用户输入的命令是否为“别名命令”。要知道,通过 alias 命令是可以给现有命令自定义别名的,即用一个自定义的命令名称来替换原本的命令名称。例如,我们经常使用的 rm 命令,其实就是 rm -i 这个整体的别名:
[root@localhost ~]# alias rm
[root@localhost ~]# rm a.txt <-- 假定当前目录中已经存在 a.txt 文件
[root@localhost ~]# alias rm 注意,这里仅是为了演示 unalisa 的用法,建议读者删除 rm 别名之后,再手动添加到系统中,执行如下命令即可再次成功添加: [root@localhost ~]# alias rm='rm -i' 3) 判断是内部命令还是外部命令Linux命令行解释器(又称为 Shell)会判断用户输入的命令是内部命令还是外部命令。其中,内部命令指的是解释器内部的命令,会被直接执行;而用户通常输入的命令都是外部命令,这些命令交给步骤四继续处理。判断一个命令属于内部命令还是外部命令,可以使用 type 命令实现。例如:
[root@localhost ~]# type pwd 4) 查找外部命令对应的可执行文件当用户执行的是外部命令时,系统会在指定的多个路径中查找该命令的可执行文件,而定义这些路径的变量,就称为 PATH 环境变量,其作用就是告诉 Shell 待执行命令的可执行文件可能存放的位置,也就是说,Shell 会在 PATH 变量包含的多个路径中逐个查找,直到找到为止(如果找不到,Shell 会提供用户“找不到此命令”)。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |