主页 > 新闻资讯 > ​大数据开发之shell

​大数据开发之shell

作者:游老师 浏览次数: 2021-04-06 13:59
过完一个清明节假期,相信大家也好好的放松休息了下,但是假期已经结束了,就继续开始学习吧。本期呢,依然给大家带了大数据开发的知识-shell,废话不多说,下面就开始shell的学习。
一、什么是shell?
在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。
shell虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,shell对于用户来说,是最重要的实用程序,而是否深入了解和熟练掌握shell的特性极其使用方法,是用好Linux系统的关键。
二、shell的分类
Shell的分类大致上是分为两种的,第一种就是图形界面shell;另一种就是命令行式的shell。
(1)图形界面shell(Graphical User Interface shell 即 GUI shell),图形界面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),命令行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
 (1) BourneShell(sh):是由AT&T Bell实验室的 Steven Bourne为AT&T的Unix开发的,它是Unix的默认Shell,也是其它Shell的开发基础。Bourne Shell在编程方面相当优秀,但在处理与用户的交互方面不如其它几种Shell。
(2) BourneAgain Shell (即bash):是自由软件基金会(GNU)开发的一个Shell,它是Linux系统中一个默认的Shell。Bash不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等优点。
(3) ash:ash Shell是由Kenneth Almquist编写的,是Linux 中占用系统资源最少的一个小Shell,它只包含24个内部命令,因而使用起来很不方便。
(4) CShell(csh):是加州伯克利大学的Bill Joy为BSD Unix开发的,共有52个内部命令,与sh不同,它的语法与C语言很相似。它提供了Bourne Shell所不能处理的用户交互特征,如命令补全、命令别名、历史命令替换等。但是,C Shell与BourneShell并不兼容。该Shell其实是指向/bin/tcsh这样的一个Shell,也就是说,csh其实就是tcsh。
(5) KornShell(ksh):是AT&T Bell实验室的David Korn开发的,共有42 条内部命令,它集合了C Shell和Bourne Shell的优点,并且与Bourne Shell向下完全兼容。Korn Shell的效率很高,其命令交互界面和编程交互界面都很好。
(6) zch:是Linux 最大的Shell之一,由Paul Falstad完成,共有84 个内部命令。如果只是一般的用途,没有必要安装这样的Shell。
注意::bash是 Bourne Again Shell 的缩写,是linux标准的默认shell ,它基于Bourne shell,吸收了C shell和Korn shell的一些特性。bash完全兼容sh,也就是说,用sh写的脚本可以不加修改的在bash中执行。
 
以上就是本期大数据开发之shell的所有内容了,希望大家在假期过后能继续学习,以上都是基础的知识,希望大家能牢记。
希望大家点个关注,及时收取最新文章推送。
有问题的欢迎在评论区留言,如有侵权请告知。
热点排行
推荐文章
立即申请>>