Linux用户分为两大类:谨慎的和大胆的。***型用户找到喜欢的东西就会坚持使用,不会手忙脚乱。他们倾向于更喜欢发行版的默认值。如果他们有最喜欢的文本编辑器,那一定是他们最先掌握的那个。另一种是用户几乎是条件反射地想要尝试刚刚出现的新选项。他们尝试了每一个窗口管理器、几十个发行版,以及几乎所有他们能找到的新桌面小部件。 作为一个拥有15年经验(无论是服务器还是桌面)的Linux用户,我绝对属于第一类用户,而不是第二类。我不喜欢新奇,这意味着我通常可以找到几乎所有用例的综合文档和示例。如果我正在使用其他东西,我会做一些认真的研究来转换,而且通常由我信任的人来说服我。 但是,这并不是说我有时不喜欢尝试看看我错过了什么。所以最近,在不假思索地使用bashshell多年之后,我决定尝试其他四种shell:ksh、tcsh、zsh和fish。所有四个shell都可以从我在Fedora中的默认存储库轻松安装,并且它们可能已经针对您选择的发行版进行了打包。 以下是每个shell的外观以及为什么应该选择它作为下一个Linux命令行解释器。 1.bash 首先我们不妨看看熟悉的shell。GNUBash(BourneAgainShell)是我多年来使用的几乎所有Linux发行版的默认shell。自1989年推出以来,bash***已轻松成为Linux世界中使用最广泛的shell,也经常出现在其他类Unix操作系统中。 bash是一个备受推崇的shell;如果您在网上查找有关如何做各种事情的文档,您几乎不可避免地会找到假定您使用的是bashshell的说明。但是bash有一些缺点,编写过几行以上脚本的任何人都可以证明这一点。这并不是说您不能执行操作,只是读写并不总是特别直观(或至少优雅)。举几个例子,看看这个常见的bash陷阱列表。 话虽如此,bash可能已经获得了认可,至少在不久的将来,它拥有庞大的用户群,以及许多已经习惯了它的用法和故障的普通和专业系统管理员。bash项目使用GPLv3许可证。 2.ksh KornShell(简称ksh)是贝尔实验室在1980年代开发的替代shell,由DavidKorn编写。虽然最初是专有软件,但后来的版本是在Eclipse公共许可证下发布的。 ksh的支持者列出了许多他们认为它的优点,包括更好的循环语法、更清晰的管道退出代码、更简单的重复命令方式和关联数组。它还能够模拟vi和emacs的许多行为,所以如果您非常偏爱文本编辑器,可能值得一试。总的来说,我发现它在基本输入方面非常像bash,但对于高级脚本来说,这绝对是一种不同的体验。 3.tcsh tcsh是csh的衍生版本,即BerkelyUnixCshell。它的历史非常悠久,可以追溯到早期的Unix和计算机本身。 tcsh的一大卖点是它的脚本语言,对于用C编程的人来说,看起来很熟悉。有人喜欢tcsh的脚本,有人讨厌tcsh的脚本。它还有其他功能,包括向别名添加变量和可能适合您的偏好的各种默认值,包括选项卡式自动完成和历史选项卡完成的工作方式。 您可以在BSD许可证下找到tcsh。 4.zsh zsh是另一个与bash和ksh有相似之处的shell。zsh起源于1990年代初期,具有许多有用的功能,包括拼写校正、主题、可命名的目录快捷方式、跨多个终端的共享命令历史记录,以及对早期Bourneshell的许多其他小改进。 zsh的代码和二进制文件是在类似于MIT许可证的许可证下发布的,但有些部分是在GPL许可证下。有关详细信息,请参阅实际许可证。 5.fish 我知道如果我访问官方网站并看到它以半开玩笑的方式描述:“终于是为90年代制作的命令行shell”-fish于2005年推出,2010年编写,我会喜欢具有良好交互性的贝壳鱼。 fish的开发者给出了很多转投fish的理由,到处用讽刺的语气也不是完全名副其实的贝壳。功能包括:自动建议、支持VGA的“令人惊叹的”256色调色板,尽管有一些非常有用的功能,包括基于您机器上的参考手册页的命令完成、干净的脚本和基于Web的配置。 fish主要采用GPLversion2license授权,部分内容采用其他授权;有关完整信息,请参阅软件存储库。 原标题:Top5Linux开源命令shell,作者:JasonBaker
