什么是shell
操作系统与外界的主要接口称为外壳。外壳是操作系统的最外层。shell管理您和操作系统之间的交互。等待你的输入,向操作系统解释你的输入,处理各种操作系统的输出结果。
Shell为您提供了一种与操作系统通信的方式。这种通信可以以交互方式(从键盘输入并立即响应)或shell脚本(非交互)方式进行。脚本是放在文件中的一系列shell和操作系统命令,可以重复使用。本质上,shell脚本是命令行命令在一个文件中的简单组合。
Shell基本上是一个命令解释器,类似于DOS下的command.com。它接收用户命令(如ls等。)然后调用相应的应用程序。常见的shell有Bourne shell (sh)和C shell (csh)。交互式外壳和非交互式外壳
交互模式意味着shell等待您的输入并执行您提交的命令。这种模式被称为交互式的,因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录,执行一些命令,注销。当您签回时,shell将被终止。
Shell也可以在另一种模式下运行:非交互模式。在这种模式下,shell不与您交互,而是读取存储在文件中的命令并执行它们。当它到达文件末尾时,shell终止。外壳类型
UNIX中有两种主要类型的shell。
Bourne shell(包括sh、ksh和bash)
伯恩谢尔
Korn shell ( ksh)
伯恩再次炮轰(bash)
POSIX外壳(sh)
壳牌(包括中海壳牌和tcsh)
c外壳(csh)
TENEX/TOPS C Shell(tcsh)Bourne Shell
最初的UNIX shell是由Stephen R. Bourne于20世纪70年代中期在新泽西的ATT贝尔实验室编写的。这是伯恩谢尔。Bourne shell是一种交换命令解释器和命令编程语言。Bourne shell可以作为登录shell或登录shell的子shell运行。只有login命令可以调用Bourne shell作为登录shell。此时,shell读取/etc/profile文件和$HOME/首先是配置文件。/etc/profile文件为所有用户定制环境,而$HOME/文件。配置文件为该用户定制环境。最后,shell将等待读取您的输入。c壳
在20世纪80年代早期,Bill在加州大学伯克利分校开发了C shell。主要是为了更方便用户使用交互功能,将ALGOL风格的语法结构改为C语言风格。它增加了命令历史、别名、文件名替换、作业控制等功能。使用
很长一段时间,只有两种shell可供人们选择,编程用的Bourne shell和交互用的C shell。为了改变这种情况,ATT贝尔实验室的大卫科恩开发了科恩壳牌。Ksh结合了C shell的所有交互特性和Bourne shell的语法。所以Korn shell很受用户欢迎。还增加了数学计算、流程协作、内嵌编辑等功能。Korn Shell是一种交互式命令解释器和命令编程语言。它符合操作系统的国际标准POSIX。POSIX不是一个操作系统,而是一个旨在实现应用程序可移植性的标准——它在源程序级别跨越了多个平台。伯恩再次炮轰(bash)
Bash是取代Bourne shell的GNU项目的一部分。它用于基于GNU的系统,如Linux。大多数Linux(Red Hat,Slackware,Caldera)使用bash作为默认shell,运行sh时,实际上调用的是bash。POSIX外壳
POSIX shell是Korn shell的变体。目前POSIX外壳最大的厂商是惠普。在HP-UX 11.0中,POSIX shell是/bin/sh,而bsh是/usr/old/bin/sh。shell:是各大操作系统的默认。
AIX是Korn Shell。
对于Solaris FreeBSD,Bourne shell是默认的。
HP-UX的缺省设置是POSIX shell。
Linux又是伯恩的壳。