面向Linux的五大开源外壳,哪个是你从没用过的呢

译文
系统 Linux 开源
Linux用户分为两大类:谨慎的和大胆的。谨慎的用户找到喜欢的东西后就坚持使用,不会朝三暮四。作为有15年使用资历的Linux用户,在使用多年的bash外壳后,我决定试一试另外四种外壳:ksh、tcsh、zsh和fish。这四种外壳都很容易从我Fedora中的默认软件库来安装,它们可能已经针对你选择的发行版进行了包装。

  Linux用户分为两大类:谨慎的和大胆的。***类用户找到喜欢的东西后就坚持使用,不会朝三暮四。他们往往喜欢发行版的默认值。如果他们钟情于某个文本编辑器,这肯定是他们先熟练掌握的那个。另一类是几乎条件反射般地想尝试刚出现的新选项的用户。他们试过所能找到的不少窗口管理器、几十个发行版以及几乎每一个新的桌面窗口组件。

  作为有15年使用资历的Linux用户(无论服务器端还是桌面端),我绝对属于***类用户,而不是第二类。我往往不太喜欢新奇的东西,这意味着我通常能找到全面的说明文档以及几乎任何用例的例子。如果我使用另类的东西,会认真研究要不要改用,而且常常取决于我信赖的人地竭力说服。

  但是,这并不是说我不喜欢有时候尝试,看看我缺少什么。所以最近,在不假思索地使用多年的bash外壳后,我决定试一试另外四种外壳:ksh、tcsh、zsh和fish。这四种外壳都很容易从我Fedora中的默认软件库来安装,它们可能已经针对你选择的发行版进行了包装。

  下面介绍了每一种外壳,以及为什么应选择它作为你的下一个Linux命令行解释器。

  1.bash

  首先,我们不妨看一下熟悉的外壳。GNU Bash(Bourne Again Shell)是这些年来我用过的几乎每个Linux发行版的默认外壳。bash***发布是在1989年,后来轻松成为了Linux界使用最广泛的外壳,还经常出现在其他类似Unix的操作系统中。

  bash是一种备受推崇的外壳;如果你在网上寻找关于如何执行各种操作的说明文档,几乎免不了会找到假设你在使用bash外壳的操作说明。但是bash也有一些缺点,只要写过不止几行脚本的人都可以证明这一点。倒不是说你无法执行某个操作,而是阅读和编写起来并不总是来得特别直观(或者至少优雅)。想了解几个例子,只要看看这份常见bash陷阱列表

  话虽如此,bash可能早已得到了人们的接受,至少在不远的将来是这样,它有庞大的用户群,还有众多普通和专业的系统管理员已经习惯于其用法和小毛病。bash项目使用了GPLv3许可证。

  2.ksh

  KornShell(简称ksh)是一种替代的外壳,上世纪80年代从贝尔实验室发展而来,由David Korn编写。虽然起初是专有软件,但后来的版本采用Eclipse公共许可证发布。

  ksh的支持者列出了他们认为它很出色的许多方面,包括拥有更好的循环语法、来自管道的更整洁的退出代码,更容易重复命令的方法以及关联阵列。它还能够模拟vi和emacs的许多行为,所以如果你非常偏爱文本编辑器,它可能值得一试。总的来说,我觉得它在基本输入方面非常类似bash,不过针对高级脚本,它肯定是不一样的体验。

  3.tcsh

  tcsh是csh即Berkely Unix C外壳的衍生版,它具有非常悠久的历史,可以追溯到Unix和计算机本身的早期阶段。

  tcsh的一大卖点是其脚本语言,这种语言对用C编程的人来说看起来非常熟悉。有些人喜欢tcsh的脚本,而有些人讨厌tcsh的脚本。不过它还有其他功能,包括给别名添加变量以及可能符合你偏好的各种默认设置,包括带标签的自动完成和历史标签完成的工作方式。

  你可以找到采用BSD许可证的tcsh。

  4.zsh

  zsh是另一种与bash和ksh都有相似之处的外壳。zsh起源于上世纪90年代初,它有许多实用功能,包括拼写纠正、主题、可命名目录快捷方式、跨多个终端共享命令历史,以及对早期的Bourne外壳所作的其他众多细微改进。

  zsh的代码和二进制文件可使用类似MIT许可证的许可证来发行,不过有些部分使用GPL许可证。查看实际许可证,了解详情。

  5.fish

  我知道,如果我访问官方网站,看到它用半开玩笑的话来描述:“终于有了一种为90年代而生的命令行外壳”――fish是在2005年编写的,我会喜欢互动性良好的外壳fish。

  fish的开发人员给出了改用fish的诸多理由,处处用调侃的语气来笑话并不是完全实至名归的外壳。功能包括:自动建议、支持VGA“惊人”的256色调色板,不过也有一些确实很有帮助的功能,包括根据你机器上的参考手册页完成命令、干净的脚本和基于Web的配置。

  fish主要采用GPL版本2许可证,但是有些部分采用了其他许可证;查看软件库,即可了解完整信息。

  原文标题:Top 5 open source command shells for Linux,作者:Jason Baker

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:火凤凰 来源: 51CTO.com
相关推荐

2021-01-03 16:12:35

Java工具开发

2017-07-26 10:08:06

FABDesign SuppAndroid

2023-05-17 08:00:00

ChatGPT人工智能

2009-11-02 09:38:07

开源ESB

2010-08-12 13:31:49

2011-05-20 09:41:50

Web服务器开源

2019-02-14 10:48:31

开源网络监控工具

2009-07-23 13:23:47

开源游戏引擎

2018-12-28 09:00:00

人工智能机器学习开源框架

2010-03-31 10:29:38

开源技术

2020-10-20 18:51:43

C++IDECode

2017-03-02 15:06:37

2019-08-23 12:20:20

通用编程工具

2019-06-26 10:10:44

Linux终端命令

2021-05-19 08:00:00

Linux开源程序

2020-11-04 10:31:29

Jupyter NotPython数据分析

2020-10-15 08:00:00

机器学习开源

2010-03-31 10:31:18

开源许可协议

2017-03-22 19:52:16

Devops开源

2022-11-29 07:33:15

JavaLombokRecord
点赞
收藏

51CTO技术栈公众号