在前面的学习中,我们认识了Linux下的一些命令,能够使用命令在Linux下完成任务。我们输入命令,操作系统执行命令并输出结果。通过命令,我们控制计算机完成一件又一件任务。那么Linux是如何解析命令、执行命令并返回结果的呢?接下来我们将学习相关知识并会接触到一个如雷贯耳的名字——Shell。
什么是Shell
在解释什么是Shell之前,我们先来重新检视一下用户与计算机系统的关系。我们知道计算机的运作不能离开硬件,在计算机刚出来时用户通过命令直接控制硬件完成任务。但是这样不安全也特麻烦,于是就在硬件的上面加了一层,用户就不需要直接跟硬件打交道了。这一层就叫操作系统也就是所谓的Kernel,比如Linux、Windows、FreeBSD等等。但是Kernel是非常脆弱的,如果用户输入某个无效或无害的命令导致Kernel不能运行,那么计算机也就无法工作了。于是人们在Kernel上又加了一层,叫做Shell。如图1所示。Shell翻译过来就是壳的意思,一个是核,一个是壳,壳包裹着核,Shell把Kernel包裹在里面。