Linux中shell的运行原理
在Linux中,每次输入命令时,前面都会出现一串字母,我们称之为命令行提示符
实际上,命令行提示符是一种外壳程序
外壳程序的概念:
前面我们提到过,在Linux中,一切皆文件,所谓的命令就是一个可执行程序
而在执行一个命令时,不是直接交给操作系统去执行的,而是要先交给外壳程序(shell)
外壳程序介于用户和操作系统之间
外壳程序的种类:
- 命令行
- 图形化界面
为什么要有外壳程序呢?
- 用户是不善于直接和操作系统交互的
- 变相的保护了操作系统,如果用户输入的命令本身不存在或不合法,外壳程序不会交给操作系统去处理,而是直接报错
外壳程序的作用:
- 将用户的命令翻译给操作系统
- 将操作系统的执行结果返回给用户
有时,用户输入的命令有非常多的错误,且一直在重复,可能会导致外壳程序本身崩溃,为了防止这种情况,外壳程序是怎么做的?
实际上,外壳程序会创建一个个的子进程,由这些子进程去帮我们做翻译命令的工作;这样,即使命令有错误,导致崩溃的也是子进程,不会影响到外壳程序本身