在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它相似于DOS下的command.com和后来的cmd.exe。它接收用户命令,而后调用相应的应用程序。linux
课程连接:Shell 编程入门到精通算法
术语:shell
同时它又是一种程序设计语言。做为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;做为程序设计语言,它定义了各类变量和参数,并提供了许多在高级语言中才具备的控制结构,包括循环和分支。
在排序算法中,Shell是希尔排序的名称。
基本上shell分两大类:
一:图形界面shell(Graphical User Interface shell 即 GUI shell)
例如:应用最为普遍的 Windows Explorer (微软的windows系列操做系统),还有也包括广为人知的 Linux shell,其中linux shell 包括 X window manager (BlackBox和FluxBox),以及功能更强大的CDE、GNOME、KDE、 XFCE。
二:命令行式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 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)
Korn shell ( ksh)
Bourne Again shell ( bash)
POSIX shell ( sh)
C shell (包括 csh and tcsh)
C shell ( csh)
TENEX/TOPS C shell ( tcsh)
Bourne Shell
首个重要的标准Unix Shell是1970年末在V7 Unix(AT&T第7版)中引入的,而且以它的创始科技部基础条件平台“国家气象网络计算应用节点建设”(2004DKA50730)资助者Stephen Bourne的名字命名。Bourne shell 是一个交换式的命令解释器和命令编程语言。Bourne shell 能够运行为login shell或者login shell的子shell(subshell)。只有login命令能够调用Bourne shell做为一个login shell。此时,shell先读取/etc/profile文件和$HOME/.profile文件。/etc/profile文件为全部的用户定制环境,$HOME/.profile文件为本用户定制环境。最后,shell会等待读取你的输入。
C Shell
Bill Joy于20世纪80年代早期,在伯克利的加利福尼亚大学开发了C shell。它主要是为了让用户更容易的使用交互式功能,并把ALGOL风格的语法结构变成了C语言风格。它新增了命令历史、别名、文件名替换、做业控制等功能。
Korn Shell
有很长一段时间,只有两类shell供人们选择,Bourne shell用来编程,C shell用来交互。为了改变这种情况,AT&T的bell实验室David Korn开发了Korn shell。ksh结合了全部的C shell的交互式特性,并融入了Bourne shell的语法。所以,Korn shell广受用户的欢迎。它还新增了数学计算,进程协做(coprocess)、行内编辑(inline editing)等功能。Korn Shell 是一个交互式的命令解释器和命令编程语言.它符合POSIX——一个操做系统的国际标准.POSIX不是一个操做系统,而是一个目标在于应用程序的移植性的标准——在源程序一级跨越多种平台。
Bourne Again Shell (bash)
bash是GNU计划的一部分,用来替代Bourne shell。它用于基于GNU的系统如Linux.大多数的Linux(Red Hat,Slackware,Caldera)都以bash做为缺省的shell,而且运行sh时,其实调用的是bash。
POSIX Shell
POSIX shell 是Korn shell的一个变种. 当前提供POSIX shell的最大卖主是Hewlett-Packard。在HP-UX 11.0,POSIX shell 就是/bin/sh,而bsh是/usr/old/bin/sh.
各主要操做系统下缺省的shell:
AIX下是Korn Shell.
Solaris缺省的是Bourne shell.
FreeBSD缺省的是C shell
HP-UX缺省的是POSIX shell.
Linux是Bourne Again shell.
Windows PowerShell是一种新的交互式的命令行和基于任务脚本编写技术,它使信息技术(IT) 管理员可以全面地自动操做和控制系统管理任务,从而提升了管理员的生产力。Windows PowerShell 包括多个系统管理实用工具、一致的语法和命名惯例、及对普通管理数据更好地导航,如登记、证书存储 或 Windows Management Instrumentation (WMI)。Windows PowerShell 还专门针对 IT 管理,提供直观的脚本编写语言。编程
Shell也是一个VB函数,它的做用是运行程序,语法是Shell(命令字符串[,窗口类型])windows
用途:bash
使用用户的缺省凭证和环境执行 shell。网络
在UEFI环境下,EFI的Shell环境提供了一组丰富的扩展和加强的命令,在之后的计算机中,传统的DOS界面将会被SHELL环境所取代,全部的.exe文件将不会在之后支持SHELL的环境中出现,取而代之的文件后缀是.efi。在SHELL环境下,分为IA32和X64,32位的*.efi文件不能在X64的计算机中运行。编程语言
更多精品课程:函数
阿里云大学官网(阿里云大学 - 官方网站,云生态下的创新人才工场)工具