shell就是用户与操作系统内核之间的接口,起着协调用户与系统的一致性和在用户与系统之间进行交互的作用。shell在Linux系统中具有极其重要的地位。
shell最重要的功能是命令解释,从这种意义上来说,shell是一个命令解释器。Linux系统中的所有可执行文件都可以作为shell命令来执行。将可执行文件做一个分类,如表3-1所示。
当用户提交了一个命令后,shell首先判断它是否为内置命令,如果是就通过shell内部的解释器将其解释为系统功能调用并转交给内核执行;若是外部命令或实用程序就试图在硬盘中查找该命令并将其调入内存,再将其解释为系统功能调用并转交给内核执行。在查找该命令时分为两种情况:
用户给出了命令路径,shell就沿着用户给出的路径查找,若找到则调入内存,若没有则输出提示信息。
用户没有给出命令的路径,shell就在环境变量PATH所制定的路径中依次进行查找,若找到则调入内存,若没找到则输出提示信息。