shell是用户和操作系统之间的接口, shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。
而你说的B shell, c shell , k shell是具体的shell实现方式。 它们的语法有不同,但功能都大致差不多。
它们之间的关系:
就象“手机“是一类物品的统称, 而nokia手机, 三星手机则是不同品牌的手机实体。
都是shell……只是不同的版本而已!如Sun默认的是C shell,商业上常用K shell以及TCSH,每种shell都有各自的特点……linux常用 Bash shell…
用户是利用shell控制kernel来间接控制硬件……
你的听明白了吗?
这些都是shell的分类,这要追溯Unix 和Shell的历史了,总的来说现在的Unix有两个分支,一个是AT&T UNIX 一个是BSD Unix, 而导致shell也有了两个大的分支,每个分支又有自己的衍生,每一种shell都有一个自己的特性,也正因为有了很多shell分类的出现,所以在POSIX标准里面规定了所有的Unix系统上都必须包含一个最小子集的shell,避免太大的差异