1.什么是shell(计算机壳层)?
在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)
它类似于DOS下的command.com和后来的cmd.exe,它接收用户命令,然后调用相应的应用程序
同时它又是一种程序设计语言,作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令
作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支
在排序算法中,Shell是希尔排序的名称
简单来说,其实shell就是用户和系统交互的工具
文字操作系统与外部最主要的接口就叫做shell,shell是操作系统最外面的一层
shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果
shell提供了你与操作系统之间通讯的方式,这种通讯可以:
以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行
shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用
本质上,shell script是命令行命令简单的组合到一个文件里面
Shell基本上是一个命令解释器,类似于DOS下的command
它接收用户命令(如ls等),然后调用相应的应用程序,较为通用的shell有标准的Bourne shell (sh)和C shell (csh)
2.shell的分类(基本上shell分两大类)
(1)图形界面shell(Graphical User Interface shell 即 GUI shell)
例如:应用最为广泛的 Windows Explorer (微软的windows系列操作系统),还有也包括广为人知的 Linux shell
其中linux shell 包括 X window manager (BlackBox和FluxBox),以及功能更强大的CDE、GNOME、KDE、 XFCE
(2)命令行式shell(Command Line Interface shell ,即CLI shell)
例如:bash / sh / ksh / csh(Unix/linux 系统)(MS-DOS系统)
cmd.exe/ 命令提示字符(Windows NT 系统)
Windows PowerShell(支持 .NET Framework 技术的 Windows NT 系统)
传统意义上的shell指的是命令行式的shell,以后如果不特别注明,shell是指命令行式的shell
交互式shell和非交互式shell也算是一个分类吧
交互式模式就是shell等待你的输入,并且执行你提交的命令,这种模式被称作交互式是因为shell与用户进行交互
这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退,当你签退后,shell也终止了
shell也可以运行在另外一种模式:非交互式模式
在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们,当它读到文件的结尾,shell也就终止了
也就是一个自动执行的脚本
shell的类型
在UNIX中主要有
Bourne shell | (包括 sh,ksh,and bash) |
---|---|
Bourne shell | ( sh) |
Korn shell | ( ksh) |
Bourne Again shell | ( bash) |
POSIX shell | ( sh) |
C shell | (包括 csh and tcsh) |
C shell | ( csh) |
TENEX/TOPS C shell | ( tcsh) |