shell
Shell 俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。
我们先来看一些Linux系统的结构
位于最内层的是硬件,然后是Linux系统内核。shell介于用户和系统内核之间。
那么shell的功能是什么呢?
shell用来接收我们用户的输入,并且解释我们的命令。然后将其传给系统内核,内核再调用硬件来操作。
shell script
我们很容易知道“Shell Script”指的是针对shell所写的脚本。我们将一些shell规定的语法与命令,再搭配正则表达式、管道命令与数据流重定向等功能,写成一个纯文本文件以达到我们想要的处理目的,再配以“.sh”的扩展名,这便是“Shell script”了。
简言之,我们只有通过Shell 这个工具来解释我们的命令等请求,我们才能成功实现与计算机的交流,同时再搭配Shell script可以批量处理命令的“程序”,我们就可以与计算机更优雅的交流哟!
我们可能会问:既然shell是解释命令的工具,那么这个工具可不可以多样化呢?不同的解释工具可不可以遵从不同的规则呢?
这是必然的咯,何况是像Linux这种开源的好东西,怎么会缺乏多样性呢?!
所以,我们就不难理解Linux中的shell有多种类型了吧,这其中最常用的几种是 Bourne shell(sh)、Bourne Again shell(bash) 和 Debian Almquist Shell(dash)。其中三种shell各有优缺点:
linux———/bin/sh、 /bin/bash、 /bin/dash的区别