Linux中有哪些不同类型的Shell?
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。
Shell | Complete path-name | Prompt for root user | Prompt for non root user |
Bourne shell (sh) | /bin/sh and /sbin/sh | # | $ |
GNU Bourne-Again shell (bash) | /bin/bash | bash-VersionNumber# | bash-VersionNumber$ |
C shell (csh) | /bin/csh | # | % |
Korn shell (ksh) | /bin/ksh | # | $ |
Z Shell (zsh) | /bin/zsh | <hostname># | <hostname>% |