shell开源
Linux用户有两种:谨慎和冒险。
一方面是几乎反射性地尝试新选项的用户。 他们尝试了一些窗口管理器,数十种发行版以及可以找到的每个新桌面小部件。
另一方面,用户会发现自己喜欢的东西并坚持使用。 他们倾向于喜欢其发行版的默认设置。 如果他们热衷于文本编辑器,则无论他们是谁先掌握的。
作为服务器和台式机上的Linux用户,已经有15年的历史了,我绝对比第一类更多。 我倾向于使用呈现给我的内容,并且我喜欢这样的事实,即我经常可以找到详尽的文档和我可以梦想的大多数用例的示例。 如果我使用的是非标准产品,则需要对开关进行仔细研究,并且通常以我信任的人的强烈建议为依据。
但这并不意味着我不喜欢有时尝试看看我所缺少的东西。 因此,最近,在使用bash外壳多年后,我什至没有想到,我决定尝试四种替代外壳:ksh,tcsh,zsh和fish。 四个都可以从我在Fedora中的默认存储库中轻松安装,并且它们可能已经打包好供您选择分发。
以下是每个选项的一些信息,以及为什么选择它作为下一个Linux命令行解释器。
重击
首先,让我们回顾一下熟悉的事物。 我多年来使用的几乎所有Linux发行版中, GNU Bash (Bourne Again Shell)一直是默认设置。 bash最初发布于1989年,现已成长为轻松成为Linux世界上最常用的shell,并且在其他类似unix的操作系统中也很常见。
Bash是一个非常受人尊敬的shell,当您寻找有关如何在Internet上进行各种操作的文档时,几乎总是会找到假设您正在使用bash shell的说明。 但是bash有一些缺点,因为任何编写过bash脚本的人都可以证明。 不是您不能做某事,而是并非总是特别直观(或至少很优雅)来进行读写。 有关一些示例,请参见此常见bash陷阱列表。
也就是说,bash至少在不久的将来可能会保留下来,它的庞大的安装基础以及成群的休闲和专业系统管理员(已经对其用法进行了调整)和怪癖。 bash项目在GPLv3许可下可用。
sh
KornShell ,也以其命令调用ksh闻名,是David Korn于1980年代从Bell Labs 衍生而来的另一种Shell。 虽然最初是专有软件,但后来的版本是根据Eclipse Public License发布的 。
支持ksh的人列出了许多感觉更好的方法,包括具有更好的循环语法,更清晰的管道退出代码,更容易的重复命令方法以及关联数组。 它也可以模拟vi或emacs的许多行为,因此,如果您非常喜欢文本编辑器,则值得尝试一下。 总的来说,我发现它与bash的基本输入非常相似,尽管对于高级脚本而言,这肯定是不同的体验。
tcsh
Tcsh是Berkely Unix C shell csh的派生产品,可以追溯到Unix和计算本身的早期。
tcsh的最大卖点是它的脚本语言,对于使用C进行编程的任何人来说,它应该看起来都非常熟悉。Tcsh的脚本受到了某些人的喜爱和憎恨。 但是它还具有其他功能,包括向别名添加参数,以及可能会吸引您的首选项的各种默认值,包括使用制表符和历史记录制表符完成功能自动完成的方式。
您可以在BSD许可证下找到tcsh。
sh
Zsh是另一个与bash和ksh有相似之处的shell。 zsh起源于90年代初,具有许多有用的功能,包括拼写校正,主题设置,可命名的目录快捷方式,在多个终端上共享命令历史记录以及从原始Bourne shell进行的其他各种细微调整。
zsh的代码和二进制文件可以在类似于MIT的许可证下分发,尽管某些部分在GPL之下; 检查实际许可证以了解详细信息。
鱼
当我访问该网站并发现它用“最后,一个90年代的命令行外壳”描述鱼龙舌兰时,我知道我会喜欢“友谊互动外壳, 鱼 ”,这是2005年写的。
Fish的作者提供了进行切换的多种原因,它们都引起了一点幽默,并给那些不太活泼的贝壳带来了一些乐趣。 功能包括自动建议(“当心,Netscape Navigator 4.0”),支持VGA的“惊人的” 256色调色板,但实际上还有一些非常有用的功能,包括基于计算机手册页的命令完成,干净的脚本和基于Web的配置。
Fish主要获得了GPL版本2的许可,但部分许可则获得了其他许可; 检查存储库以获取完整信息 。
是否需要更详细地了解每个选项之间的确切差异? 这个站点应该帮助您。
那我在哪里着陆呢? 好吧,最终,我可能会重新使用bash,因为这些差异非常细微,以至于大多数人以交互方式使用命令行而不是编写高级脚本,实际上并不会从切换中受益很多,而且我已经很漂亮了轻松自在
但是我很高兴我决定从外壳中脱颖而出,尝试一些新的选择。 我知道那里还有很多很多其他的。 您尝试过哪些壳,并且您更喜欢哪一种? 让我们在评论中知道!
shell开源