5个为 Linux 高级用户准备的也是最常用的开源 shell

发表于:2021-7-28 09:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:Linux公社

  Linux有许多shell可用,但在本文中,我们只包括前五种Linux shell,并全面讨论它们的特性。
  Linux为那些总在寻找新工具包的高级用户提供了一些最好的开源shell。Linux中不同类型的shell提供了不同的功能,但在其核心,它们基本上实现了几十年前开发的思想。
  什么是Linux Shell
  在 Linux 中,shell 是操作系统中执行其他程序的命令解释器。它为计算机用户提供了 Linux 系统的接口,以便用户可以使用一些输入数据运行不同的命令或实用程序。
  简单来说,shell 是一个程序,它从键盘接收命令并将它们交给操作系统来执行。它接受纯文本格式的命令并调用操作系统服务来做某事。
  但是 shell 不仅仅是一个命令解释器。它也是一种完整的编程语言,具有自己的结构,例如变量、循环、条件执行、函数等等。
  每个 shell 都有自己的语法和脚本功能。那么,让我们来看看 Linux 上最常用的五个开源 shell。
  1、Bash Shell
  Brian Fox 于 1988 年为 GNU 项目开发了 Bash 作为 Bourne shell 的免费版本。Bash 与原始版本类似,但增加了命令行编辑等功能。
  因为 Bash 是标准的 GNU shell,所以它成为了所有 Linux 发行版上的标准 shell。现在大多数现代 Linux 发行版都默认提供 Bash shell。这个开源 Linux shell 在社区中以其强大的功能集和可用性而闻名。该名称是“Bourne-Again SHell”的首字母缩写。
  Bash 被认为如此强大的原因之一是因为它是可编写脚本的。shell 脚本是隔离的命令列表,以优化任何任务并具有成本效益,类似于具有明确定义标准的其他编程语言。您可以手动在 Bash 中输入任何内容,也可以在纯文本文件中列出并让 Bash 为您运行。
  学习 Bash 对于执行自动化非常有用。它非常强大,并具有许多功能,例如:
   · 目录操作
   · 工作管理(Job Control )
   · 花括号扩展(brace expansion)
   · 波浪号扩展(Tilde expansion)
   · 别名
   · 命令历史
   · 命令行编辑
   · 键绑定
   · 集成编程功能
   · 控制结构
   · 内置插件的动态加载
  Linux 内核的创建者 Linus Torvalds 说,他 1991 年在新内核上运行的前两个程序是 Bash 和 gcc,GNU 的编译器。
  2、Zsh Shell
  Zsh(Z shell 的缩写)是 Bourne Shell 的扩展版本,具有许多新功能并支持插件和主题。它是一个高度可定制的 Linux shell,其中包含一些非常强大的功能,例如选项卡完成、智能历史记录、远程文件扩展等等。Zsh 是一种专为交互使用而设计的 shell,尽管它也是一种强大的脚本语言。Bash、Ksh 和 Tcsh 的许多有用功能都已合并到 Zsh 中并添加到它们之上。
  Zsh 由 Paul Fastad 于 1990 年开发,zsh 名称来自耶鲁大学教授宗绍。它已成为 Linux 操作系统最流行的 shell 之一。
  一些更重要的 Zsh 函数是:
  · 命令自动完成
  · 改进的变量处理
  · 拼写更正
  · 共享命令历史
  · 环境变量设置简单
  · 定制
  当您使用 Linux 时,大部分用户时间都花在终端上。如果您想自定义您的终端并使其看起来专业,您可以使用 Oh My Zsh 来实现此目标。它是一个社区驱动的开源框架,可用于管理 Zsh 配置。Zsh还有其他框架,如Prezto、Zgen、Antigen等。目前Oh My Zsh能够支持150个主题和275个插件。
  Zsh 和 Bash 都有相似且令人印象深刻的功能,但也有自己独特的工具。如果您正在寻找 bash 中没有的可扩展性、更大的自定义和高级功能,zsh shell 是一个很好的选择。此外,Zsh 是 macOS Catalina 中的默认登录 shell 和交互式 shell,替代了 Bash。
  3、Fish
  Fish shell 是一个现代命令行界面,具有自动建议、选项卡完成和语法突出显示。它是适用于 Linux 和 macOS 的智能且用户友好的命令行 shell。该shell 为用户提供强大的功能和控制,而不会影响速度和效率。它旨在立即使用,无需进行大量配置。
  基于历史的Fish内联自动建议开箱即用。使用您的历史记录,Fish 提出了完成命令的下一个可能性。
  这个 shell 比经典的 Bash shell 更加丰富多彩。您会很快注意到 Fish 在您键入时执行语法高亮显示。这些颜色以及更多颜色可以通过运行 fish_config 来更改。这将打开一个基于 Web 的 GUI,您可以在其中选择颜色主题并配置外壳的外观。
  另一个很棒的功能是命令的可用性。例如,如果你输入/usr/bin/linuxiac,它会以红色显示该行,表明它不是一个有效的命令,但你输入/usr/bin/ping它看起来是正常的。
  Fish shell特点:
  · 基于历史的内联自动建议
  · 出色的标签完成
  · 语法高亮
  · 直观的通配符支持
  · 基于网络的配置
  · 健全的脚本
  对于使用 zsh、bash 等其他 shell 的用户来说,如果他们想尝试一个新的、有利的 shell,Fish是非常强大和有用的 Linux shell。
  相关:FISH:为90后准备的Linux shell    https://www.linuxmi.com/fish-linux-shell.html
  4、Ksh shell
  Ksh(Korn shell 的缩写)由 AT&T 贝尔实验室的 David Korn 发明,并于 1986 年开始公共生活。它是 Bourne shell 的重新实现。Ksh shell 的命令编辑器界面支持快速、轻松地纠正输入错误,以及轻松调用和重用命令历史记录。它不提供命令补全,但提供文件名补全。Ksh 允许开发人员在需要时创建新的 shell 命令。
  Ksh shell 的命令行编辑模式是一开始往往会吸引人们使用它的功能。使用命令行编辑,返回并修复错误要容易得多。另一个主要面向交互式用户的主要 Ksh 功能是作业控制。
  一些更重要的 Ksh 函数是:
  · 作业控制
  · 别名
  · 功能
  · 命令历史
  · 命令行编辑
  · 集成编程功能
  · 控制结构
  · 调试原语
  · 常用表达
  · 高级 I/O 功能
  Ksh shell 已经发布了不同的版本,如 pdksh、mksh、ksh88 和最新的 ksh93。
  5、Tcsh Shell
  在最初的 Linux 时代,C 和 C++ 编程语言非常流行,并且 Linux 本身的大部分内容都是用它们编写的。不出所料,出现了一个新的 shell,即使用 vanilla C 语法模型的 C Shell。Tcsh 是 Berkeley UNIX csh (C Shell) 的增强但完全兼容的版本。它是一种命令语言解释器,可用作交互式登录 shell 和 shell 脚本命令处理器。Tcsh 可以被认为是下一代 C shell。
  Tcsh 由 Ken Greer 于 1979 年在卡内基梅隆大学开发。tcsh 中的“t”来自 TENEX 中的“T”,TENEX 是 BBN 于 1969 年为 PDP-10 大型计算机家族开发的操作系统。
  早期版本的 MacOS X 附带 tcsh 作为默认 shell,但新版本的默认值变成了 Bash。现在 tcsh 是 FreeBSD 的默认 root shell。
  Tcsh 的主要功能是可编程命令完成和命令行编辑。它在鲜明的简单性和基本功能之间取得了很好的平衡。使用 tcsh 所需的所有文档都位于 man tcsh 中,而不是散布在各种帮助程序中。
  总结
  帮助 Linux 发行版确保其当前地位的基本功能之一是 Linux shell。掌握 Linux shell 为您提供了一种与操作系统交互的替代方式。我们鼓励读者根据他们的要求尝试其中的一些 shell,并为自己获得第一手经验。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号