###shell概念(来源百度百科)linux
在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它相似于DOS下的command和后来的cmd.exe。它接收用户命令,而后调用相应的应用程序。shell
同时它又是一种程序设计语言。做为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;做为程序设计语言,它定义了各类变量和参数,并提供了许多在高级语言中才具备的控制结构,包括循环和分支。windows
基本上shell分两大类: #####一:图形界面shell(Graphical User Interface shell 即 GUI shell) 例如:应用最为普遍的 Windows Explorer (微软的windows系列操做系统),还有也包括广为人知的 Linux shell,其中linux shell 包括 X window manager (BlackBox和FluxBox),以及功能更强大的CDE、GNOME、KDE、 XFCE。bash
#####二:命令行式shell(Command Line Interface shell ,即CLI shell) 传统意义上的shell指的是命令行式的shell,之后若是不特别注明,shell是指命令行式的shell。 文字操做系统与外部最主要的接口就叫作shell。shell是操做系统最外面的一层。shell管理你与操做系统之间的交互:等待你输入,向操做系统解释你的输入,而且处理各类各样的操做系统的输出结果。 shell提供了你与操做系统之间通信的方式。这种通信能够以交互方式(从键盘输入,而且能够当即获得响应),或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操做系统命令,它们能够被重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。 Shell基本上是一个命令解释器,相似于DOS下的command。它接收用户命令(如ls等),而后调用相应的应用程序。较为通用的shell有标准的Bourne shell (sh)和C shell (csh)。操作系统
#####交互式shell和非交互式shell 交互式模式就是shell等待你的输入,而且执行你提交的命令。这种模式被称做交互式是由于shell与用户进行交互。这种模式也是大多数用户很是熟悉的:登陆、执行一些命令、签退。当你签退后,shell也终止了。 shell也能够运行在另一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,而且执行它们。当它读到文件的结尾,shell也就终止了。命令行
#####shell的类型 在UNIX中主要有:设计
Bourne shell (包括 sh,ksh,and bash)接口
Bourne shell ( sh)ip
Korn shell ( ksh)cmd
Bourne Again shell ( bash)
POSIX shell ( sh)
C shell (包括 csh and tcsh)
C shell ( csh)
TENEX/TOPS C shell ( tcsh)
其中,Bourne Again Shell (bash)是GNU计划的一部分,用来替代Bourne shell。它用于基于GNU的系统如Linux.大多数的Linux(Red Hat,Slackware,Caldera)都以bash做为缺省的shell,而且运行sh时,其实调用的是bash。