老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

Linux shell有哪些类型?老男孩Linux运维培训

老男孩IT教育

常见问题

2021年7月15日 17:49

shell是一门脚本语言,即shell脚本,shell也是解释执行的脚本语言,可直接调用Linux命令,所以它在Linux系统中有着非常重要的作用。那么Linux shell有哪些类型?我们来看看吧。

  shell是一门脚本语言,即shell脚本,shell也是解释执行的脚本语言,可直接调用Linux命令,所以它在Linux系统中有着非常重要的作用。那么Linux shell有哪些类型?我们来看看吧。

Linux shell

  shell脚本语言是弱类型语言,无需定义变量的类型就可使用,主要有两大类:bourne shell、C shell。

  第一种: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。

  第二种: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) 取代。

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

  [root@oldboy ~]# cat /etc/shells

  /bin/sh #<==这是Linux里常用的Shell,指向/bin/bash。

  /bin/bash #<==这是Linux里常用的Shell,也是默认使用的Shell。

  /usr/bin/sh

  /usr/bin/bash

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

  作为IT教育人才服务平台,老男孩教育一直专注于Linux运维人才的输出服务,有效引导了学员的前进方向,让他们少走弯路,帮助更多人了解Linux技术。

  推荐阅读:

  Linux学习教程之什么是Ansible?特性及优点介绍!

  云计算的特点包括哪几方面?老男孩linux运维工程师学习

  云计算和区块链有什么联系?Linux云计算培训

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。