当前位置: 首页 > 科技观察

12个好用的免费开源LinuxShell

时间:2023-03-14 11:24:32 科技观察

Unix系统自70年代诞生以来,一直备受世人瞩目。帮助Linux和BSD发行版确保其当前地位的基本功能之一是Linuxshell。shell由于其强大的功能和多样的应用,是很多Linux爱好者必备的工具之一。它是操作系统的命令行界面,允许您按照自己的方式执行任何类型的操作。此外,Linuxshell不仅仅是一个接口,而是一种成熟的脚本语言,具有自己的一套语法和语义。流行的LinuxshellLinux为高级用户提供了一些最好的开源shell,他们总是希望在他们的武器库中添加新的工具包。这反过来又使许多日常用户难以选择特定的shell。我们冒昧地列出了一些最适合Linux用户的免费开源shell。仔细阅读本文,找出最适合您的Linuxshell。1.shShellBourneShell或“sh”是历史悠久的Unix操作系统中第一个流行的Shell。sh是UNIX上的标准shell,它的创建者StephenBourne于1977年在AT&T贝尔实验室开发了它,从那时起它就与大多数早期的Unix系统一起发布。BourneShell从它使用的脚本扩展中得到它的缩写形式,它要求用户以sh结束他们的脚本名称。它为许多流行的未来shell设定了标准,包括重定向、脚本功能和强大的语言结构。BourneShell的特点BourneShell的默认shell提示符是$符号,它是第一个使用此字符作为提示符的shell。它内置了对输入输出重定向、Unicode、流重定向、批处理脚本等的支持。尽管最初的1977版shell是专有的,但它已将源代码公开提供。shshell是高度可配置的,可以修改以轻松匹配不同的系统标准。2.BashShellBash被广泛称为BourneAgainShell,它可能是现代Unix机器上使用最多的LinuxShell。如果您使用的是标准Linux发行版,例如Ubuntu或Arch,则您使用的默认shell是BashShell。这个开源Linuxshell因其强大的功能集和可用性而在社区中广为人知。因此,大多数Linux用户在他们生活的某个时刻都会运行Bash。BashShell的特性Bash提供的命令行编辑功能非常出色,而且它提供了无限的命令历史记录。Bash提供强大的shell函数、别名、作业控制机制、输入和输出重定向、ISO8061支持和Unicode支持。这个开源Linuxshell为命令名称、路径、通配符提供自动完成支持,并允许在文本突出显示时使用彩色目录列表。Bash可以执行从2到64的任何基数的整数运算,并允许无限大小的索引数组。3.CShellCshell或“csh”是最古老的开源Unixshell之一。它是由BillJoy在70年代开发的,当时他是UCB的一名研究生。从那时起,csh随许多Unix变体一起发布,特别是各种BSD。它为解释器加入了类似C的语法,这对很多人都有帮助,因为最初的Unix系统和现代Linux内核大多是用C/C++编写的。CShell的特性CShell提供创新的历史记录机制、作业控制程序、交互式文件名和用户名完成以及类似C的语法。它允许高级用户将其用作交互式登录shell或shell脚本的命令处理器。LinuxCShell使用的默认shell提示符是“%”符号,与许多Bash用户熟悉的“$”符号相反。CShell使用户能够使用变量替换和基于通配符的匹配模式进行搜索和替换。4.KornShellKornShell或ksh可以说是当今最流行的Linux开源shell之一。它是由DavidKorn在传奇的贝尔实验室开发的,他从CShell的交互性和BashShell的交互性中获得灵感。由于其先进的功能,包括高级作业控制、命令别名、浮点运算和许多其他功能,KornShell从一开始就广受欢迎。KornShell的特性KornShell允许用户使用Ctrl+Z终止当前作业,并使用命令fg和bg将其置于前台或后台。它可用于将shell程序代码直接存储在内存中,从而增加可编程性和提高性能。ksh提供高级命令行编辑,用户可以直接从他们的shell使用vi或Emacs风格的编辑命令。Kornshell脚本通常比Bourneshell脚本更快,并提供高级I/O功能和重要的安全机制。5.ZshShellZshShell是一个创新的现代Linuxshell,具有许多强大的功能。它是在Bash之上开发的,并提供了一个交互式登录shell以及有效的命令解释器。Zsh以其性能着称,在许多方面极大地改进了Linux的许多开源shell。它还借鉴了90年代其他流行shell的元素,包括Ksh和TcshShell。如果您是正在寻找高级Linuxshell的Linux专家,请尝试Zsh。ZshShell的特点Zsh的自动补全非常智能,支持高度交互的文件和路径自动补全。这个开源Unixshell的历史共享机制是巨大的,允许同时运行的许多不同终端实例共享历史。用户可以从其流行的社区驱动框架oh-my-zsh中选择400多个插件和200多个主题。Zsh还支持vi模式、智能转义、递归遍历、管道输出到临时文件、拼写校正和许多其他交互功能。6.TcshShellTcshshell是Cshell的升级版,提供可编程的命令补全和命令行编辑作为其关键功能。它与CshShell完全兼容,可以用作交互式登录shell和shell脚本处理器。Tcsh带有强大的命令行编辑器、现代历史机制、可编程的单词完成、作业控制、拼写检查支持和Csh后跟的类C语法。这个Unixshell最适合高级程序员。TcshShell功能Tcsh具有对文件和变量的自动完成以及可编程完成和别名参数选择器的内置支持。它允许有经验的用户在终端上运行shell脚本时合并通配符以获得更大的灵活性。这个Linuxshell的预构建where命令的工作方式类似于Bash中的which命令,但会显示$PATH目录中指定目标的每个位置。Tcsh是FreeBSD及其后代(如DragonFlyBSD和DesktopBSD)的默认命令行解释器。7.FishShellFishShell是一个友好的交互式Unixshell,旨在取代Linux早期的开源shell。除Windows操作系统外,每个Linux和BSD发行版都提供此功能。Fish提供了一组强大的功能,使您可以更轻松地在计算机上发现、记住和使用激动人心的Linux命令。如果您正在为您的Linux桌面寻找一个智能命令行shell,Fish绝对值得一试。FishShell功能Fish提供了一个强大的自动建议功能,可以根据命令行历史和当前目录进行搜索。其功能丰富的Tav完成功能允许用户使用通配符和大括号扩展来扩展文件路径、变量和许多特定于命令的完成。Fish内置了对24位真彩色的支持,使您的终端会话更加丰富多彩,更具吸引力。对于寻找开箱即用且无需配置的开源shell的人们来说,这是一个很好的shell。8.IonShellIonShell是一个迷人的现代shell,具有简单但强大的语法和显着改进的性能。它是用Rust编程语言编写的,因此不会受到许多Bash用户遇到的常见“ShellShcok”问题的影响。Ion从Bash、Fish和Oil等流行的Shell中借鉴了许多设计元素。因此,启动并运行这个出色的shell并不需要太多。IonShell功能IonShell比Dash更快,而Dash本身比当今大多数Linux机器使用的标准BashShell快四倍。因为它是用Rust编写的,所以Ion提供了比传统的基于C/C++的Unix命令行shell更高的内存安全性。Ion具有对字符串、数组、glob、大括号(范围、排列、嵌套大括号)、算术和过程的内置扩展支持。其简单、干净和干净的设计使其相对易于使用,并允许用户将shell编译成静态二进制文件。9、DashshellDashshell是DebianAlmquistshell(Dash)的缩写,是Debian操作系统默认的命令行解释器。它比标准的GNUBashshell小得多,但仍然以POSIX兼容性为目标。在移植到Linux生态系统之前,Dash源自NetBSD版本的ash(AlmquistSHell),与传统的Unixshell相比具有显着的性能改进。Dash比大多数shell更快,并且需要更少的空间和更少的库。Dashshell的特性Dash是Linux最快的开源shell之一,其时钟速度几乎是Bash和其他标准shell的四倍。Dash的极简设计使其比日常的命令行解释器小得多,并且只需要有限的系统资源(磁盘空间、RAM或CPU)。由于Dash的代码库小得多,因此Dash的攻击面更小,并且非常安全,可以抵御频繁的shell攻击。Ubuntu或Debian系统用户可以通过在终端窗口中键入mandash来找到有关Dash的更多信息。10.EshellEshell是一个用EmacsLisp编写的方便的命令行解释程序。它的目的是在高度可移植的同时为Lisp代码提供无缝支持。它提供了大量的日常功能,包括自动完成、历史管理、作业控制机制等等。Eshell附带的脚本结构非常简单并且可以正常工作。如果您是Lisp程序员或前卫的Emacs爱好者,Eshell可以成为您理想的Linuxshell。Eshell的功能Eshell不是一个独立的终端仿真器,而是一个使用Emacs的功能与您的计算机通信的日常shell。截至目前,它不直接支持交互式程序,因此您需要在单独的ANSI术语实例中调用它们。Eshell默认对历史修改和交互的支持非常好,其语法有点类似于Bash和Zsh。用户可以通过修改eshell-prompt-function变量来自定义Eshell,该变量定义了提示符在系统中的行为。11.rcShellrcshell是一个经典的命令行解释器,与Bourneshell非常相似。但是,与BourneShell相比,它的结构有些简单。这是因为rc使用类似C的控制结构而不是sh的类似ALGOL的语法。TomDuff是Unixshell的主要开发者,以其高质量的编程和出色的解决问题能力而闻名。rcShell的特性rc使用ifnot脚本构造而不是vanillaelse,并提供与Bourneshell中使用的循环相同的for循环。尽管rc的输入规则很弱,但它结合了强大的变量操作机制。rc相当轻量级,因此比许多传统的Linux开源shell更快。它对异常处理、搜索和替换机制、模式匹配等有很好的支持。12.Elvishshell自从几个月前尝试使用ElvishShell以来,它是我最喜欢的Linux开源shell之一。它是一个非常棒的命令行解释器,可以让你用你的电脑做各种各样的事情。从操纵系统本身到编写雄辩的脚本,Elvish可用于完成大量任务。它带有丰富的强大功能库,用于字符串处理、正则表达式匹配、JSON解析、网络等。Elvishshell的特性Elvish管道允许系统将结构化数据(例如列表、地图甚至函数)与标准文本数据一起传输。它带有熟悉的类C语法,使经验丰富的Linux用户可以直观地使用Elvish编写脚本。Elvish是用Go编程语言编写的,因此与其他Unixshell相比它是类型安全的。这个UnixShell带有一个预构建的文件管理器,使系统管理更加舒适。总结由于不断发展的Linux生态系统提供了许多强大的开源shell,因此为您选择合适的Linuxshell通常是一项艰巨的任务。因此,我们仔细研究了您能找到的每一个热门选择,并专门为您编写了这本方便的指南。由于人们对不同种类的shell有不同的偏好,因此哪种shell最适合您完全取决于您。我们鼓励读者根据自己的要求尝试其中一些shell并为自己获得第一手经验,并让我们知道您的想法,谢谢。