Shell是一个与操作系统OS紧密联系的概念。
Shell实质上是一种软件,它可以分为命令行软件和图形界面软件两类。
操作系统的内核是被保护起来的,用户需要通过Shell才能与操作系统内核进行通信。
Shell的作用就是根据用户提供的命令(命令行上)或操作(图形界面上)来操作相应的应用程序从而调用操作系统内核(Kernel)去完成某项工作。
命令行式的shell比如:(Unix/Linux系统中)bash、sh、csh、ksh等。
图形界面shell比如:(windows系列操作系统中)Windows Exploler。
Linux中,我们通常说使用某种shell指的就是使用了bash还是csh等。
bash等命令行式shell也可以说是一个命令行解释器:在用户和操作系统之间提供直接的通信
Shell内置命令:内置在shell源代码中的命令,当执行这些内置命令时,shell(如bash)不需要在磁盘上对这些命令进行搜索,所以有很快的执行速度。不同的shell的内置命令有所不同。
另外,shell又是一种解释性语言,通常用来写一些自动化的系统管理脚本。它可以实现交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串命令。它也定义了各种变量和参数,并提供了在高级语言中才有的流程控制结构(条件判断、循环等)。
Shell脚本(script):一个shell脚本就是一个包含了许多(依据shell语法写出的)shell指令的文件。我们可以通过执行该脚本来一次性执行该文件中的命令。