Shell分类

Linux上常见的Shell脚本解释器有bash、sh、csh、ksh等,习惯将它们称为一种Shell。
通常说有多少种Shell,其实说的是有多少种Shell脚本解释器。

bash

bash是BourneAgain Shell的缩写,是自由软件基金会(GNU)开发的一个Shell。
bash是Linux标准默认的shell。内部命令一共有40个。

特点:
可以使用类似DOS下面的doskey的功能,用方向键查阅和快速输入并修改命令。
自动通过查找匹配的方式给出以某字符串开头的命令。
包含了自身的帮助功能,你只要在提示符下面键入help就可以得到相关的帮助。
bash完全兼容sh。

sh

sh是Bourne Shell的缩写,由Steve Bourne开发。
sh是Unix标准默认的shell。

csh

csh是C-Shelll的缩写,是Linux比较大的内核,它由以William Joy为代表的共计47位作者编成,共有52个内部命令。
提供了bash所不能处理的用户交互特征,如命令补全、命令别名、历史命令替换等。但是,csh与bash并不兼容。

ksh

ksh是Korn shell的缩写,由Eric Gisin编写,共有42条内部命令。
最大的优点是几乎和商业发行版的ksh完全兼容,可以在不用花钱购买商业版本的情况下尝试商业版本的性能。

ash

ash是由Kenneth Almquist编写的,Linux中占用系统资源最少的一个小shell。
但是它只包含24个内部命令,因而使用起来很不方便。