|
|
|
|
移动端

2.4.1 Shell脚本语言的种类

《跟老男孩学Linux运维:Shell编程实战》本书是一本较完整的Shell编程实战型图书,并非大而全,但处处可以体现实战二字,大多内容取于企业实战,并结合老男孩十几年的运维工作和教学工作进行了梳理。本节为大家介绍Shell脚本语言的种类。

作者:老男孩来源:机械工业出版社|2017-04-20 18:23

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

2.4 脚本语言的种类

2.4.1 Shell脚本语言的种类

Shell脚本语言是弱类型语言(无须定义变量的类型即可使用),在Unix/Linux中主要有两大类Shell:一类是Bourne shell,另一类是C shell。

1.Bourne shell

Bourne shell又包括Bourne shell(sh)、Korn shell(ksh)、Bourne Again Shell(bash)三种类型。

Bourne shell(sh)由AT&T的Steve Bourne开发,是标准的UNIX Shell,很多UNIX系统都配有sh。

Korn shell(ksh)由David Korn开发,是Bourne shell(sh)的超集合,并且添加了csh引入的新功能,是目前很多UNIX系统标准配置的Shell,这些系统上的/bin/sh往往是指向/bin/ksh的符号链接。

Bourne Again Shell(bash)由GNU项目组开发,主要目标是与POSIX标准保持一致,同时兼顾对sh的兼容,bash从csh和ksh借鉴了很多功能,是各种Linux发行版默认配置的Shell,Linux系统上的/bin/sh往往是指向/bin/bash的符号链接。尽管如此,bash和sh还是有很多的不同之处:一方面,bash扩展了一些命令和参数;另一方面,bash并不完全和sh兼容,它们有些行为并不一致,但在大多数企业运维的情况下区别不大,特殊场景可以使用bash替代sh。

2.C shell

C shell又包括csh、tcsh两种类型。

csh由Berkeley大学开发,随BSD UNIX发布,它的流程控制语句很像C语言,支持很多Bourne shell所不支持的功能,例如:作业控制、别名、系统算术、命令历史、命令行编辑等。

tcsh是csh的增强版,加入了命令补全等功能,在FreeBSD、Mac OS X等系统上替代了csh。

以上介绍的这些Shell中,较为通用的是标准的Bourne shell(sh)和C shell(csh)。其中Bourne shell(sh)已经被Bourne Again shell(bash)所取代。

可通过以下命令查看CentOS 6系统的Shell支持情况。

  1. [root@oldboy ~]# cat /etc/shells  
  2. /bin/sh        #<==这是Linux里常用的Shell,指向/bin/bash。  
  3. /bin/bash      #<==这是Linux里常用的Shell,也是默认使用的Shell。  
  4. /sbin/nologin  #<==这是Linux里常用的Shell,用于禁止用户登录。  
  5. /bin/dash  
  6. /bin/tcsh  
  7. /bin/csh 

Linux系统中的主流Shell是bash,bash是由Bourne Shell(sh)发展而来的,同时bash还包含了csh和ksh的特色,但大多数脚本都可以不加修改地在sh上运行,如果使用了sh后发现结果和预期有差异,那么可以尝试用bash替代sh。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Cisco CCNA 640-801

Cisco 640-801 Cisco® Certified Network Associate (CCNA®) Q&A with explanations Version 93.0...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊