引入
- 输入指令的过程本质上就是在输入一个字符串,然后指令的本质就是编译好的程序.exe与脚本。它们都是在系统的特定路径之下放着呢。
- 然后我们所有指令最终都是要到操作系统内部去运行的,也就是说各种各样的指令都需要操作系统的参与。
- 我们有各种各样的需求与指令需要跑起来,都需要操作系统的参与,但操作系统直接使用难度高,因此用户不可能直接使用操作系统太复杂了,成本太高了。所以我们用户不可能直接与操作系统进行打交道,但是功能还是得让它跑起来,怎么办呢?
- 于是我们就有了图形化界面啊,命令行解释器啊等等…相当于是通过一个中介与媒婆,帮我们与直接打交道困难的操作系统进行打交道。
命令行解释器(统称)
- 因为我们直接与操作系统打交道,成本太高,太过于复杂。但是又需要让操作系统来办各种各样的事情,所以说就采取一个中介与媒婆让他来帮助我们与操作系统打交道。
- 这个中介与媒婆就是命令行解释器,命令行解释器的话,它是一个统称。
- 在Linux下,也称之为命令行,shell,bash,sh…
- 在Windows下,也称之为图形化界面。
- 这个命令行解释器就是充当一个中介人,这样子的话,用户只要根据需求输入指令,然后这个命令行解释器会把他以特定的方式下达给操作系统,然后操作系统会进行响应,并且通过命令行解释器再返回给用户,比方说,如果没找到指令就会有command not found…、
命令行解释器的好处
- 首先第一个就是功能性意义:命令行解释器可以对你的命令行进行一个解释与翻译,也可以理解为相当于在用户与操作系统之间添加了一个软件层,在软件层当中对用户进行健全。
- 还有一个意义就在于也变相的保护操作系统,因为对于用户的非法请求,他会进行直接拦截(在Shell层),而不是下达到操作系统,这样的话就可以节省资源,让操作系统有更多的时间去响应别处的请求。
Shell,bash,sh,bash命令行
- Shell是也可以理解成是命令行解释器的一个统称,只不过在Linux下面提到的多一点,总而言之,他也可以理解成就是命令行解释器,也就是王婆。符合命令行解释器的都称之为shell。
- 然后bash与sh等都是不同种类的具体的解释器罢了。比如说媒婆中的李婆,胡婆…
- 那么bash命令行又是什么呢?看:
- 上面这四个东西组合起来的这么一串就是bash命令行,以后我们也会知道他其实就是一个进程。bash这个具体的命令行解释器长什么样子?就是bash命令行这样子,相当于王婆就长那样子,也就是具体命令行解释器展现出来的样子
Linux Kernel 与 Shell
- 我们一般的Linux操作系统它是一个统称,它主要包括Linux的各种应用,还有命令行解释器,还有Linux内核…
- 用户管理,文件管理,进程管理,还有内存管理,驱动管理等等,都需要Linux内核)Kernel进行一些操作
- 但是用户无法直接与Linux Kernel进行打交道,而是通过Kernel的外壳程序,也就是所谓的Shell来与Kernel沟通。
- 这个Shell也就是上面提到过得命令行解释器…