阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Shell的作用与分类

70次阅读
没有评论

共计 1765 个字符,预计需要花费 5 分钟才能阅读完成。

1、Shell 的作用

Shell 除了能解释用户输入的命令,将它传递给内核,还可以:

调用其他程序,给其他程序传递数据或参数,并获取程序的处理结果。
在多个程序之间传递数据,把一个程序的输出作为另一个程序的输入。
Shell 本身也可以被其他程序调用。
由此可见,Shell 是将内核、程序和用户连接了起来。

Shell 本身支持的命令并不多,但是它可以调用其他的程序,每个程序就是一个命令,这使得 Shell 命令的数量可以无限扩展,其结果就是 Shell 的功能非常强大,完全能够胜任 Linux 的日常管理工作,如文本或字符串检索、文件的查找或创建、大规模软件的自动部署、更改系统设置、监控服务器性能、发送报警邮件、抓取网页内容、压缩文件等。

Shell 并不是简单的堆砌命令,我们还可以在 Shell 中编程,这和使用 C/C++、Java、Python 等常见的编程语言并没有什么两样。

Shell 虽然没有 C/C++、Java、Python 等强大,但也支持了基本的编程元素,例如:

if…else 选择结构,switch…case 开关语句,for、while、until 循环。
变量、数组、字符串、注释、加减乘除、逻辑运算等概念。
函数,包括用户自定义的函数和内置函数(例如 printf、export、eval 等)。
Shell 也是一种编程语言,它的编译器(解释器)是 Shell 这个程序。我们平时所说的 Shell,有时候是指连接用户和内核的这个程序,有时候又是指 Shell 编程。

Shell 主要用来开发一些实用的、自动化的小工具,而不是用来开发具有复杂业务逻辑的中大型软件,例如检测计算机的硬件参数、一键搭建 Web 开发环境、日志分析等,Shell 都非常合适。

使用 Shell 的熟练程度反映了用户对 Linux 的掌握程度,运维工程师、网络管理员、程序员都应该学习 Shell。

尤其是 Linux 运维工程师,Shell 更是必不可少的,是必须掌握的技能,它使得我们能够自动化地管理服务器集群,否则你就得一个一个地登录所有的服务器,对每一台服务器都进行相同的设置,而这些服务器可能有成百上千之多,会浪费大量的时间在重复性的工作上。

2、Shell 的分类

目前 Shell 的版本有很多种,如 BourneShell、CShell、Bash、ksh、tcsh 等,它们各有特点。

如下图所示:

Shell 的作用与分类

下面简要介绍几个重点的 Shell 版本。

最重要的 Shell 是 BourneShell,这个命名是为了纪念此 Shell 的发明者 Steven Bourne。从 1979 年起,UNIX 就开始使用 BourneShell。BourneShell 的主文件名为 sh,开发人员便以 sh 作为 BourneShell 的主要识别名称。
虽然 Linux 与 UNIX 一样,可以支持多种 Shell,但 BourneShell 的重要地位至今仍然没有改变,许多 UNIX 系统中仍然使用 sh 作为重要的管理工具。它的工作从开机到关机,几乎无所不包。在 Linux 中,用户 Shell 主要是 Bash,但在启动脚本、编辑等很多工作中仍然使用 BourneShell。
CShell 是广为流行的 Shell 变种。CShell 主要在 BSD 版的 UNIX 系统中使用,发明者是柏克莱大学的 Bill Joy。CShell 因为其语法和 C 语言类似而得名,这也使得 UNIX 的系统工程师在学习 CShell 时感到相当方便。
BashShell 也就是 Bourne Again (Bash),是 GNU 计划的重要工具之一,也是 GNU 系统中标准的 Shell。Bash 与 sh 兼容,所以许多早期开发出来的 BourneShell 程序都可以继续在 Bash 中运行。现在使用的 Linux 就使用 Bash 作为用户的基本 Shell。
Bash 于 1988 年发布,并在 1995-1996 年推出 Bash 2.0。在这之前,广为使用的版本是 1.14,Bash 2.0 增加了许多新的功能,以及具备更好的兼容性。
总结:

Shell 的两种主要语法类型有 Bourne 和 C,这两种语法彼此不兼容。Bourne 家族主要包括 sh、ksh、Bash、psh、zsh;C 家族主要包括:csh、tcsh(Bash 和 zsh 在不同程度上支持 csh 的语法)。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1765字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中