您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux

12个优秀的免费开源Linux Shell

时间:2020-05-04 11:22:27  来源:  作者:

linux为高级用户提供了一些最好的开源shell,我们冒昧地为Linux用户列出了一些最好的免费开源shell。请仔细阅读本文,找出最适合您的Linux shell。

自从70年代Unix系统诞生以来,它就一直吸引着全世界的目光。帮助Linux和BSD发行版确保其当前地位的基本特性之一是Linux shell。由于其强大的功能和多样的应用程序,shell是许多Linux爱好者的必备工具之一。它是操作系统的命令行接口,允许您根据自己的条件执行任何类型的操作。此外,Linux shell不仅是一个接口,而且是一种具有自己的语法和语义集的成熟脚本语言。

常用的Linux shell

Linux为高级用户提供了一些最好的开源shell,这些用户总是希望为自己的武器库添加新的工具包。这反过来又使许多日常用户很难选择特定的shell。我们冒昧地为Linux用户列出了一些最好的免费开源shell。请仔细阅读本文,找出最适合您的Linux shell。

1. sh Shell

Bourne Shell或“sh”是历史悠久的Unix操作系统忠第一个流行的 Shell。sh 是 UNIX 上的标准 shell,它的创建者Stephen Bourne于1977年在AT&T贝尔实验室开发了它,自那时以来,它已随大多数早期的Unix系统一起提供。Bourne Shell从它使用的脚本扩展名中获得了简短的形式,它要求用户以sh结束脚本名。它为许多流行的未来Shell设置了标准,包括重定向,脚本功能和强大的语言构造。

介绍12个优秀的免费开源Linux Shell

 

Bourne Shell的功能:

Bourne Shell的默认Shell提示符是$符号,它是第一个使用此字符作为提示符的Shell。

它具有对输入输出重定向,Unicode,流重定向,批处理脚本等的内置支持。

尽管最初的1977年版本的shell是私有的,但它已经公开提供了源代码。

sh shell是高度可配置的,可以进行修改以轻松匹配不同的系统标准。

2. Bash Shell

Bash被广泛称为Bourne Again Shell,它可能是现代Unix机器上使用最多的Linux Shell。如果您使用的是标准Linux发行版(例如Ubuntu或Arch),则您使用的默认Shell是Bash Shell。这种开源Linux shell以其强大的功能集和可用性而在社区中广为人知。因此,大多数Linux用户在一生中的某一时刻都运行Bash。

Bash Shell的功能:

Bash提供的命令行编辑功能非常出色,并且提供了无限的命令历史记录。

Bash提供了强大的shell函数,别名,作业控制机制,输入输出重定向,ISO 8061支持以及Unicode支持。

这个开源Linux shell为命令名、路径、通配符提供了自动完成支持,并允许在文本高亮显示的同时显示彩色目录清单。

Bash可以执行从2到64的任何基数的整数运算,并允许具有无限大小的索引数组。

3. C Shell

C shell或“csh”是最古老的开源Unix shell之一。它是由UCB当时的研究生Bill Joy在70年代开发的。从那时起,csh附带了许多Unix变体,尤其是各种BSD。它为解释器合并了类似于C的语法,由于原始的Unix系统和现代Linux内核大部分都是用C/C++编写的,因此对许多人来说都是有帮助的。

C Shell的功能:

C Shell提供了创新的历史记录机制,作业控制过程,交互式文件名和用户名补全以及类似C的语法。

它允许高级用户将其用作交互式登录Shell或Shell脚本的命令处理器。

Linux C Shell使用的默认Shell提示符是“%”符号,与许多Bash用户熟悉的“ $”符号相反。

C Shell使用户能够搜索和替换变量替换以及基于通配符的匹配模式。

4. Korn Shell

Korn Shell或ksh可以说是当今Linux最受欢迎的开源Shell之一。它是由David Korn在传奇的贝尔实验室开发的,他从C Shell的交互性和Bash Shell的互动式中获得了启发。由于其先进的功能,包括高级作业控制,命令别名,浮点算术以及许多其他功能,自成立之初以来,Korn Shell就已经获得了极大的欢迎。

Korn Shell的功能:

Korn Shell允许用户使用Ctrl + Z终止当前作业,并使用命令fg和bg将其置于前台或后台。

它可用于直接将Shell程序代码存储在内存中,从而提高编程能力和提高性能。

ksh提供了高级命令行编辑,用户可以在其中直接从其Shell使用vi或Emacs风格的编辑命令。

Korn Shell脚本通常比Bourne Shell脚本更快,并提供高级I/O功能以及显着的安全性机制。

5. Zsh Shell

Zsh Shell是具有许多强大功能的创新型现代Linux Shell。它是在Bash之上开发的,并在有效的命令解释器旁边提供了一个交互式登录Shell。Zsh以其性能而闻名,它在许多方面都大大改善了Linux的许多开源Shell。它还借鉴了90年代其他流行Shell的元素,包括Ksh和TcshShell。如果您是Linux专家,正在寻找高级Linux Shell,请尝试Zsh。

Zsh Shell的功能:

Zsh的自动完成功能非常智能,并且支持文件和路径的高度交互式自动完成。

这个开源Unix shell的历史记录共享机制非常庞大,允许同时运行的许多不同终端实例的共享历史记录。

用户可以从其流行的,社区驱动的框架oh-my-zsh中选择400多个插件和200多个主题。

Zsh还支持vi模式,智能转义,递归遍历,将输出传递到临时文件,拼写更正以及许多其他交互式功能。

6. Tcsh Shell

Tcsh shell是C shell的升级版本,它提供可编程命令完成和命令行编辑作为其关键功能。它与Csh Shell完全兼容,可以用作交互式登录Shell和Shell脚本处理器。Tcsh带有功能强大的命令行编辑器,现代化的历史记录机制,可编程的单词补全,作业控制,拼写检查支持以及类似于C的语法,后跟Csh。该Unix shell最适合高级程序员

Tcsh Shell的功能:

Tcsh内置了对文件和变量的自动完成以及可编程完成和别名参数选择器的支持。

当在终端上运行shell脚本时,它允许经验丰富的用户合并通配符以提高灵活性。

该Linux shell的预构建where命令的作用类似于Bash中的which命令,但显示$PATH目录中指定的目标的每个位置。

Tcsh是FreeBSD及其后代(例如DragonFly BSD和DesktopBSD)的默认命令行解释器。

7. Fish Shell

Fish Shell是一种友好的交互式Unix Shell,旨在替代Linux早期的开源Shell。除windows操作系统外,每个Linux和BSD发行版均提供此功能。Fish提供了一组强大的功能,使您更容易发现,记住和使用计算机上令人兴奋的Linux命令。如果您正在寻找Linux桌面的智能命令行Shell,Fish当然值得一试。

Fish Shell的功能:

Fish提供了一个强大的自动建议功能,即根据命令行历史和当前目录进行搜索。

其功能丰富的Tav完成功能允许用户使用通配符和大括号扩展来扩展文件路径,变量和许多特定于命令的完成。

Fish内置了对24位真彩色的支持,使您的终端会话更加丰富多彩和更具吸引力。

对于寻求开箱即用且无需配置的开源shell的人们来说,这是一个很好的shell。

8. Ion Shell

Ion Shell是一个令人着迷的现代Shell,它具有简单但功能强大的语法,并显着提高了性能。它是使用Rust编程语言编写的,因此它不易受到许多Bash用户遇到的常见“ ShellShcok”问题的影响。Ion从流行的Shell中借鉴了许多设计元素,例如Bash,Fish和Oil。因此,无需花费太多时间即可启动并运行此出色的shell。

Ion Shell的功能:

Ion Shell比Dash快,而Dash本身比当今大多数Linux机器使用的标准Bash Shell快四倍。

由于是用Rust编写的,所以Ion提供了比传统的基于C/C++的Unix命令行Shell更高的内存安全性。

Ion具有对字符串,数组,glob,大括号(范围,排列,嵌套大括号),算术和过程的内置扩展支持。

它简单,干净和简洁的设计使其相对易于使用,并允许用户将shell编译为静态二进制文件。

9. Dash shell

Dash shell是Debian Almquist shell(Dash)的缩写,并且是Debian操作系统的默认命令行解释器。它比标准的GNU Bash shell小得多,但仍然以POSIX兼容为目标。Dash在移植到Linux生态系统之前已经从NetBSD版本的ash(Almquist SHell)衍生而来,并且比传统的Unix shell具有显著的性能提升。Dash比大多数Shell更快,并且需要更少的空间和更少的库。

Dash shell的功能:

Dash是Linux最快的开源Shell之一,其时钟速度几乎是Bash和其他标准Shell的四倍。

Dash的简约设计使其比日常的命令行解释器小得多,并且只要有限的系统资源(磁盘空间,RAM或CPU)。

由于Dash的代码库明显较小,因此Dash的受攻击面较小,并且对于频繁的Shell攻击非常安全。

Ubuntu或Debian系统用户可以在终端窗口中输入man dash来找到有关Dash的更多信息。

10. Eshell

Eshell是使用Emacs Lisp编写的一种方便的命令行解释器程序,其目的是在提供对Lisp代码的无缝支持的同时具有高度的可移植性。它提供了大量日常功能,包括自动完成,历史记录管理,作业控制机制等等。Eshell附带的脚本结构非常简单,可以正确完成工作。如果您是Lisp程序员或前卫的Emacs爱好者,那么Eshell可以成为您理想的Linux Shell。

Eshell的功能:

Eshell不是一个独立的终端模拟器,而是一个日常shell,可以使用Emacs的功能与您的计算机进行通信。

到目前为止,它不直接支持交互式程序,因此您需要在单独的ANSI术语实例中调用它们。

Eshell对历史记录修改和交互的默认支持非常好,其语法在某种程度上类似于Bash和Zsh。

用户可以通过修改eshell-prompt-function变量来自定义Eshell,该变量定义了提示在系统中的行为。

11. rc Shell

rc shell是经典的命令行解释器,与Bourne shell极为相似。但是,与Bourne Shell相比,它具有某种简单的结构。这是因为rc使用类似C的控制结构,而不是sh使用类似ALGOL的语法。Tom Duff是该Unix Shell的主要开发人员,以其高质量的程序设计和出色的解决问题能力而闻名。

rc Shell的功能:

rc使用if not scripting结构而不是vanilla else,并提供与在Bourne shell中使用的for循环相同的for循环。

尽管rc的输入规则很弱,但是它结合了强大的机制来操纵变量。

rc相当轻巧,因此比许多传统的Linux开源shell更快。

它具有对异常处理,搜索和替换机制,模式匹配等的出色支持。

12. Elvish shell

自从几个月前尝试使用Elvish Shell以来,它是我最喜欢的Linux开源shell之一。这是一个真正出色的命令行解释器,可让您在计算机上执行各种操作。从操纵系统本身到编写雄辩的脚本,Elvish均可用于完成大量任务。它带有丰富的健壮函数库,可用于字符串处理,正则表达式匹配,JSON解析,联网等。

Elvish shell的功能:

Elvish管道允许系统与标准文本数据一起流式传输诸如列表,地图甚至功能之类的结构化数据。

它带有类似C的熟悉语法,对于经验丰富的Linux用户而言,使用Elvish编写脚本非常直观。

Elvish是使用Go编程语言编写的,因此与其他Unix Shell相比,它是类型安全的。

该Unix Shell附带了一个预构建的文件管理器,使系统管理更加舒适。

总结

由于Linux不断发展的生态系统提供了许多强大的开源Shell,因此为您选择合适的Linux Shell通常是一项艰巨的任务。因此,我们员遍历了您可以找到的所有流行选择,并为您编写了此便捷指南。由于人们对不同种类的Shell有不同的偏好,因此最适合您的Shell完全取决于您。



Tags:Linux Shell   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
在 shell 中使用 bc 更好地做算数,它是一种用于高级计算的数学语言。• 来源:linux.cn • 作者:Seth Kenlon • 译者:geekpi •(本文字数:1955,阅读时长大约:2 分...【详细内容】
2020-09-29  Tags: Linux Shell  点击:(134)  评论:(0)  加入收藏
本篇主要是以x64系统为例对系统调用中一些功能性函数的解读和实际运用。目前网络上流传的通用shellcode,均使用系统调用实现,在记录整个学习过程的同时分享给大家一起学习探讨...【详细内容】
2020-09-02  Tags: Linux Shell  点击:(75)  评论:(0)  加入收藏
1、单引号(' ')单引号所见即所得,直接显示单引号里的内容。即单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的。比如下面的例子,单引号所见即所得。 2、...【详细内容】
2020-08-03  Tags: Linux Shell  点击:(79)  评论:(0)  加入收藏
分享下处理数据分析时,linux shell 两个比较基础的工具sed 指令非交互式的字符流编辑器,支持对多文件多行的管道处理sed [option] 'command' f.txtsed -n '2,3p...【详细内容】
2020-07-24  Tags: Linux Shell  点击:(77)  评论:(0)  加入收藏
Linux为高级用户提供了一些最好的开源shell,我们冒昧地为Linux用户列出了一些最好的免费开源shell。请仔细阅读本文,找出最适合您的Linux shell。自从70年代Unix系统诞生以来,...【详细内容】
2020-05-04  Tags: Linux Shell  点击:(81)  评论:(0)  加入收藏
Linux为高级用户提供了一些最好的开源shell,我们冒昧地为Linux用户列出了一些最好的免费开源shell。请仔细阅读本文,找出最适合您的Linux shell。自从70年代Unix系统诞生以来,...【详细内容】
2020-05-04  Tags: Linux Shell  点击:(44)  评论:(0)  加入收藏
转自 | talkwithtrend作者 | db2haodbshell的逻辑运算符 涉及有以下几种类型,因此只要适当选择,可以解决我们很多复杂的判断,达到事半功倍效果。一、逻辑运算符1、逻辑卷标...【详细内容】
2019-12-17  Tags: Linux Shell  点击:(109)  评论:(0)  加入收藏
Linux 内置命令属于用户 shell 的一部分,本文将告诉你如何识别它们并获取使用它们的帮助。-- Sandra Henry-stocker(作者)Linux 内置命令是内置于 shell 中的命令,很像内置于墙...【详细内容】
2019-12-06  Tags: Linux Shell  点击:(94)  评论:(0)  加入收藏
Linux Shell是一种基本功,由于怪异的语法加之较差的可读性,通常被Python等脚本代替。既然是基本功,那就需要掌握,毕竟学习Shell脚本的过程中,还是能了解到很多Linux系统的内容。...【详细内容】
2019-10-25  Tags: Linux Shell  点击:(1121)  评论:(0)  加入收藏
前言有时候我们常看到类似这样的脚本调用:./test.sh > log.txt 2>&1 这里的2>&1是什么意思?该如何理解?先说结论:上面的调用表明将./test.sh的输出重定向到log.txt文件中,同时将...【详细内容】
2019-10-25  Tags: Linux Shell  点击:(145)  评论:(0)  加入收藏
▌简易百科推荐
作用显示文件或目录所占用的磁盘空间使用命令格式du [option] 文件/目录命令功能显示文件或目录所占用的磁盘空间一些写法的区别du -sh xxx 显示总目录的大小,但是不会列出...【详细内容】
2021-12-23  mitsuhide1992    Tags:du命令   点击:(12)  评论:(0)  加入收藏
什么是linux内核linux就像是一个哲学的最佳实践。如果非要对它评价,我真的不知道该怎么赞叹,我只能自豪地说着:“linux的美丽简直让人沉醉。”我只能说是我处在linux学习的修炼...【详细内容】
2021-12-23  linux上的码农    Tags:linux内核   点击:(15)  评论:(0)  加入收藏
本文将比较 Linux 中 service 和 systemctl 命令,先分别简单介绍这两个命令的基础用法,然后进行比较。从 CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 service服务(dae...【详细内容】
2021-12-23  软件架构    Tags:systemctl   点击:(14)  评论:(0)  加入收藏
mv是move的缩写,可以用来移动文件或者重命名文件名,经常用来备份文件或者目录。命令格式mv [选项] 源文件或者目录 目标文件或者目录命令功能mv命令中第二个参数类型的不同(...【详细内容】
2021-12-17  入门小站    Tags:mv命令   点击:(23)  评论:(0)  加入收藏
大数据技术AI Flink/Spark/Hadoop/数仓,数据分析、面试,源码解读等干货学习资料 98篇原创内容 -->公众号 Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处...【详细内容】
2021-12-17  仙风道骨的宝石骑士    Tags:sed命令   点击:(22)  评论:(0)  加入收藏
Node是个啥?  写个东西还是尽量面面俱到吧,所以有关基本概念的东西我也从网上选择性地拿了下来,有些地方针对自己的理解有所改动,对这些概念性的东西有过了解的可选择跳过这段...【详细内容】
2021-12-15  linux上的码农    Tags:node   点击:(25)  评论:(0)  加入收藏
难道只有我一个人觉得Ubuntu的unity桌面非常好用吗?最近把台式机上面的Ubuntu 16.04格式化了,装了黑苹果用了一周,不得不说,MacOS确实很精美,软件生态比Linux丰富很多,比Windows简...【详细内容】
2021-12-14  地球末日村    Tags:ubuntu   点击:(40)  评论:(0)  加入收藏
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行net...【详细内容】
2021-12-13  窥镜天    Tags:Linux netstat   点击:(28)  评论:(0)  加入收藏
对于较多数量的文件描述符的监听无论是select还是poll系统调用都显得捉襟见肘,poll每次都需要将所有的文件描述符复制到内核,内核本身不会对这些文件描述符加以保存,这样的设计...【详细内容】
2021-12-13  深度Linux    Tags:Linux   点击:(19)  评论:(0)  加入收藏
今天,我们来了解下 Linux 系统的革命性通用执行引擎-eBPF,之所以聊着玩意,因为它确实牛逼,作为一项底层技术,在现在的云原生生态领域中起着举足轻重的作用。截至目前,业界使用范...【详细内容】
2021-12-10  架构驿站    Tags:eBPF   点击:(29)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条