Linux 中使用最频繁的 5 个开源 Shell

在操作系统如UnixGNU/Linux中,shell是命令解释器,它是一个执行其他程序的程序。它为用户提供了一个与Unix/GNU Linux系统交互的界面,使用户能够运行不同的命令实用工具/工具并提供一些输入数据。

当shell完成执行一个程序后,它会将输出发送到用户的屏幕上,这是标准输出设备。因此,它被称为“命令解释器”。

Shell不仅仅是命令解释器,它还是一种拥有完整编程语言结构的编程语言,如条件执行、循环、变量、函数等。

这就是为什么Unix/GNU Linux shell比Windows shell更强大的原因。

在本文中,我们将介绍一些在Unix/GNU Linux上最常用的开源shell。

1. Bash Shell

Bash”,代表“Bourne Again SHell”。它是原始sh)的增强版,由<Brian Fox于1989年引入。

多年来,Bash已经成为许多Linux发行版和macOS(直到Catalina版本之后被zsh取代)上最受欢迎和广泛使用的命令行解释器之一。

Bash为用户提供运行命令、导航文件系统以及运行脚本的能力。用户可以利用命令历史、制表符补全和脚本编写等特性来自动化任务并简化工作流程。

<Bash Shell在开源计算的发展中扮演了关键角色,为用户提供了一个与系统交互的一致界面。

Bash Shell

2. Tcsh/Csh Shell

tee-shell”)和see-shell”)是基于Unix的命令行外壳程序,已经存在了几十年。<Csh,或称C外壳,是由<Bill Joy于20世纪70年代末在加州大学伯克利分校开发的。

它引入了几种特性和脚本语法,这些特性和语法受C编程语言的启发,使其在熟悉C语言的程序员中很受欢迎。

Tcsh是原始的Csh的增强版,Csh代表“Tenex C Shell”,其中“Tenex”是指TENEX操作系统。

Tcsh包含了Csh的所有功能,并进行了额外的改进,如命令行编辑、作业控制和命令补全。

这两种shell在Unix世界中都很有影响力,许多用户欣赏它们独特的脚本语法和功能。然而,随着时间的推移,像bash这样的其他shell由于其广泛的功能和普及而获得了更多的欢迎。

尽管如此,TcshCsh仍然是Unix shell历史中不可或缺的一部分。

Tcsh Shell

3. Ksh Shell

KornShell,通常称为ksh,是一种由David G. Korn在1980年代早期在AT&T贝尔实验室开发的Unix shell。

它结合了C shell (csh)和Bourne shell (sh)的特性,旨在提供两者的最佳功能。多年来,ksh因其高级脚本功能而备受赞誉,成为许多系统管理员和高级用户的最爱。

ksh 的一个突出特点是它的关联数组,这是当时的shell中不常见的功能。它还引入了select结构,使脚本中的菜单生成变得简单直观。

另一个显著优势是其命令行编辑和历史记录功能,后来被其他shell如bash所采用。

Ksh Shell

4. Zsh Shell

Zsh shell,通常简称为“Zsh”,是一个功能强大的Unix shell,在程序员和系统管理员中获得了显著的流行度。

Bourne Shell 的扩展版,Zsh融合了其他shell如Bashkshtcsh的功能,提供了丰富的功能集和改进的交互使用体验。

Zsh的一个突出特点是其强大的自动补全功能。与其他shell不同,Zsh的自动补全是上下文感知的,能够建议相关命令、文件路径,甚至Git分支,使用户体验更加流畅和直观。

另外,Zsh通过Oh My Zsh框架具有高度的可定制性,用户可以轻松应用主题和插件,增强终端环境的美观性和功能性。

Zsh Shell

5. Fish

Fish Shell是一个现代的、用户友好的命令行壳,旨在为用户提供交互性和直观的界面。

与传统的壳如BashZsh不同,Fish开箱即用的智能建议,使得无论是初学者还是有经验的用户都能更轻松地导航和执行命令。

Fish的一个突出特点是其自动建议功能,根据你的命令历史提供实时反馈,从而加快命令执行。

Fish还拥有一个生动和多彩的界面,带有语法高亮,使得读取和理解命令更容易。其基于网页的配置允许用户在不深入复杂配置文件的情况下定制他们的壳体验。

此外,Fish拥有庞大且不断增长的社区贡献插件和主题集合,增强了其功能和外观。

Fish Shell
摘要

这些并不是 Unix/GNU Linux 中唯一可用的 shell,但它们是其中最常用的之一,除了各种 Linux 发行版预装的那些。

I hope you find this article useful. For any additional information, please don’t hesitate to post a comment.

Source:
https://www.tecmint.com/different-types-of-linux-shells/