Linux中有哪些不同类型的Shell?

时间:2020-02-23 14:33:08  来源:igfitidea点击:

Shell是任何Linux用户会话的重要组成部分。
我们在Linux中提供了几种不同类型的Shell来完成任务。
每个shell都有独特的属性。
因此,在许多情况下,对于特定要求,一个shell比另一个shell要好。

这对我们来说很重要,要了解Linux中可用的不同类型的Shell。
在本教程中,我们将讨论什么是shell以及为什么它如此重要。

此外,我们将探索Linux中不同类型的Shell,以了解其功能和属性。

什么是shell,为什么我们需要它们?

每当用户登录系统或者打开控制台窗口时,内核都会运行一个新的Shell实例。
内核是任何操作系统的心脏。

它负责控制管理和流程执行,并确保正确利用系统资源。

Shell是充当用户和内核之间接口的程序。
它允许用户向内核发出命令并从内核接收响应。
通过shell,我们可以在内核上执行程序和实用程序。
因此,shell程序的核心是用于执行系统上其他程序的程序。

能够与内核交互使Shells成为功能强大的工具。
如果无法与内核进行交互,则用户将无法访问其计算机操作系统提供的实用程序。

让我们了解适用于Linux环境的主要Shell。

Linux中不同类型的Shell

如果您现在了解什么是内核,什么是shell以及为什么shell对Linux系统如此重要,那么让我们继续学习可用的不同类型的shell。

这些shell中的每一个都具有使它们在特定类型的使用方面比其他shell更高效的属性。
因此,让我们讨论Linux中不同类型的Shell及其属性和功能。

1.Bourne shell (sh)

史蒂夫·伯恩(Steve Bourne)由AT&T贝尔实验室开发,伯恩(Bourne)shell被认为是有史以来第一个UNIXshell。
它表示为sh。
它因其紧凑的性质和高速的操作而广受欢迎。

这就是使其成为Solaris OS的默认shell的原因。
它也用作所有Solaris系统管理脚本的缺省shell程序。
从这里开始阅读有关Shell脚本的内容。

但是,Bourneshell 具有一些主要缺点。

  • 它没有内置功能来处理逻辑和算术运算。

  • 而且,与Linux中大多数不同类型的Shell不同,Bourne Shell无法调用以前使用的命令。

  • 它还缺少提供正确交互使用的综合功能。

Bourne shell的完整路径名是/bin/sh和/sbin/sh。
默认情况下,它对根用户使用提示符#,对非根用户使用$。

2. GNU Bourne-Again Shell(bash)

GNU Bourne-Againshell被更广泛地称为Bashshell,旨在与Bourneshell兼容。
它合并了Linux中不同类型的Shell(例如Korn Shell和C Shell)的有用功能。

与Bourne shell不同,它使我们能够自动调用以前使用的命令并借助箭头键进行编辑。

GNU Bourne-Again shell的完整路径名是/bin/bash。
默认情况下,它对根用户使用提示符bash-VersionNumber#,对非根用户使用bash-VersionNumber $。

3. C Shell(csh)

C shell是由Bill Joy在加利福尼亚大学创建的。
它表示为csh。
它被开发为包括有用的编程功能,例如对算术运算的内置支持以及类似于C编程语言的语法。

此外,它还结合了命令历史,而在Linux中,像Bourne shell这样的不同类型的Shell中都缺少该命令历史。
C shell的另一个显着特征是"别名"。

C Shell的完整路径名是/bin/csh。
默认情况下,它对提示符root用户使用提示hostname#,对非root用户使用提示hostname%。

4. Korn Shell(ksh)

Kornshell 由David Korn在AT&T贝尔实验室开发,用于改进Bourneshell 。
它表示为ksh。
Kornshell 实质上是Bourneshell 的超集。

除了支持Bourne Shell支持的所有功能之外,它还为用户提供了新功能。
它提供对算术运算的内置支持,同时提供类似于C shell的交互式功能。

Korn shell运行为Bourne shell创建的脚本,同时提供类似于C编程语言的字符串,数组和函数操作。
它还支持为C Shell编写的脚本。
此外,它比Linux中大多数不同类型的Shell(包括C Shell)要快。

Korn Shell程序的完整路径名是/bin/ksh。
默认情况下,它对根用户使用提示符#,对非根用户使用$。

5. Z Shell(zsh)

Z Shell或者zsh是sh shell扩展,具有大量的自定义改进功能。
如果您想要具有更多功能的现代shell,则可以使用zshshell。

z shell的一些值得注意的功能包括:

  • 根据给定条件生成文件名
  • 插件和主题支持
  • 内置功能索引
  • 命令完成
  • 还有很多…

让我们总结一下下表中在本教程中讨论过的Linux中的不同Shell。

ShellComplete path-namePrompt for root userPrompt for non root user
Bourne shell (sh)/bin/sh and /sbin/sh#$
GNU Bourne-Again shell (bash)/bin/bashbash-VersionNumber#bash-VersionNumber$
C shell (csh)/bin/csh#%
Korn shell (ksh)/bin/ksh#$
Z Shell (zsh)/bin/zsh<hostname>#<hostname>%