shell 命令以及运行原理
2023-05-11 1460Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。
而是通过kernel的 外壳程序,也就是所谓的 shell,来与kernel沟通。
shell 是什么?
shell 是包裹在操作系统外部的软件层,所以形象的称之为 外壳程序。
而从技术角度,Shell的最简单定义是:命令行解释器(command Interpreter)主要包含:
将使用者的命令翻译给核心(kernel)处理。
同时,将核心(kernel)的处理结果翻译给使用者。
以上说明,我们可以用这幅图来理解:
我们理解 shell 分为两个层面,理性理解 和 感性理解。
理性理解:
对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。
如果shell 接受到非法指令,可能会直接拦截,不会让操作系统执行指令,从而达到保护操作系统的目的。
为了防止用户的非法指令导致 shell 自身崩溃,shell 一般都不会去执行对应的指令,而是让子进程去执行。