Fish vs. Zsh vs. Bash以及为什么要改用Fish

栏目: IT技术 · 发布时间: 4年前

Fish vs. Zsh vs. Bash以及为什么要改用Fish

来源: https://medium.com/better-programming,翻译 :Dunizb

事实上,大多数开发人员都喜欢Unix和类似Unix(基于Linux)的操作系统,例如macOS,Ubuntu等。 它们稳定,强大,高度可定制,并且具有强大的Unix Shell。

Fish vs. Zsh vs. Bash以及为什么要改用Fish

什么是UNIX Shell?

Shell是基础操作系统的接口。它允许你使用文本和命令来执行操作,并且为用户提供了高级功能,例如能够创建脚本。

Unix Shell是一个功能强大的工具,使 程序员 仅需几句话就可以完成复杂的任务。有很多广泛使用的Shell,例如Bourne Shell,C Shell等。

我特别使用了Bash、Zsh和fish shell,下面是我对为什么切换到fish甚至Zsh是使你的编程体验更愉快的最好方法之一的想法。

一分钟介绍Bash,Zsh和fish

Bash

Fish vs. Zsh vs. Bash以及为什么要改用Fish

Bash是最常见的Linux Shell,如果你在Mac上打开终端(直到macOS Mojave为止),或者如果你以前使用过Linux,那么你会看到Bash。

它可以创建别名、创建函数、导出变量和运行命令,就像任何其他 shell 一样。尽管只有有限的可配置选项集,但它得到了广泛的应用,并且有大量用户已经习惯了它的用法和特性。

Zsh

Zsh与Bash类似,是另一个很棒的shell,它比Bash更快,更可自定义。

关于Zsh的最酷的事情之一是颜色自定义,你只需使用名为Oh My Zsh的框架即可更改shell的主题和颜色。

Fish vs. Zsh vs. Bash以及为什么要改用Fish

Zsh还具有许多其他有用的功能,包括拼写校正,在多个终端之间共享命令历史记录,命名目录快捷方式等。

Fish

在我看来,Fish,或者“友好的交互式Shell”,是最用户友好和交互式的Shell。

它比Zsh和Bash更具可定制性。它有很多很酷的特性,比如一致的语法、漂亮的制表符完成和语法高亮显示,很容易上手和使用,并且有很好的运行时帮助。

你只需使用名为Oh My Fish的框架即可更改shell的主题和颜色,与前面提到的shell不同,fish不是POSIX兼容的,但也并非如此。

通过在Bash文件的第一行中添加以下shebang行,您可以在Zsh和fish中运行Bash脚本。

#!/usr/bin/env bash

Fish有什么特别之处?

Fish vs. Zsh vs. Bash以及为什么要改用Fish
Fish Shell logo

易于理解和使用

与需要大量设置才能按你希望的方式工作的其他shell不同,fish开箱即用即可完美工作。它附带了已经包含的最广泛使用的特性,当你开始使用它时,不需要安装任何额外的插件或调整任何配置文件,除非你愿意。它的语法简单,干净且一致。

语法高亮

语法高亮显示是我们都希望我们的CLI能够执行的功能。它可以节省大量的时间,也可以节省大量的时间和挫折感。好吧,fish就做到了,而且做得很好。

在你按回车键之前,它就会显示你的命令或要搜索的目录是否存在。在你按回车键之前,你就会知道你是否输入错了什么。这样一来,人们就更容易解析命令,发现错误。

它以红色突出显示(大多数)错误,例如拼写错误的命令,拼写错误的选项,从不存在的文件中读取,括号和引号不匹配以及许多其他常见错误。

它还具有突出显示匹配的引号和括号的功能。哦,它很漂亮,色彩丰富。

fish shell的配置

Fish社区维护了Oh My Fish,这是一个受Oh My Zsh启发的shell框架。它提供了许多精美的提示主题和超赞的插件,轻巧,超赞且易于使用。

Fish vs. Zsh vs. Bash以及为什么要改用Fish

它还提供了基于Web的配置功能。只需输入:

fish_config

你将进入可自定义shell皮肤的网站。

Fish vs. Zsh vs. Bash以及为什么要改用Fish
web_config page for fish

内嵌搜索历史

这是该Shell的一个交互式功能。你开始输入一个命令,然后按向上键,可以看到Shell历史记录中所有你之前使用该命令的时间。

要搜索历史记录,只需输入搜索查询,然后按向上键即可。通过使用向上和向下箭头,你可以搜索较早和较新的匹配。fish的历史记录会自动删除重复匹配,匹配的子串会被高亮显示。

这些功能使搜索和重用以前的命令变得更快。

内嵌自动建议

Fish会在你键入时提示命令,并在光标右侧显示灰色的提示,如果你输入错误的命令,它将以红色显示,表示该命令无效。

它还会根据你的历史记录和有效文件,在你输入的同时,提示你最常用的命令和自动完成。

Fish vs. Zsh vs. Bash以及为什么要改用Fish
内联自动建议的演示

使用人机界面数据完成制表页

Fish可以解析各种格式的CLI工具手册页,输入一个命令,然后按 "tab" 通过所有建议的自动完成。

Fish vs. Zsh vs. Bash以及为什么要改用Fish

使用fish的缺点

没有什么是完美的,也不应该是完美的。

不支持历史扩展(“!!”)

Fish不支持 !! ,但是你可以使用Oh My Fish Shell框架并安装 bang-bang 插件以在fish Shell中使用此快捷方式。

慢于Bash

Fish的大多数功能都将便利放在优先位置,而不是速度吗,这是Bash更好地编写Shell脚本的原因之一。

总结

Fish充满了令人敬畏的功能,它将使你的工作效率提升到一个不同的水平。它有非常完善的文档,而且安装起来也很容易。

如果不是一切都做得最好,它具有遵循基本UNIX哲学的功能:“只做一件事,并做好。”

如果你是一个广泛使用终端来完成事情的程序员,那么你需要从目前的Shell中走出来,现在就开始用fish。

Fish vs. Zsh vs. Bash以及为什么要改用Fish

前端大礼包新增课程了:100:

新增课程 《再学JavaScript ES(5-10)全版本语法大全》 ,学习当下和未来大热技术!公众号中 回复关键字:“前端大礼包” 即可获取,不定期新增新课程,新增课程都会通知大家。

Fish vs. Zsh vs. Bash以及为什么要改用Fish

近期文章

JavaScript ES6代理的实际用例

DOM API中append和appendChild的三个不同点

在JavaScript中使用Spread运算符的8种方法

你知道Object.entries(),但你还知道有Object.fromEntries()吗?

Vue技巧 | 在Vue3中使元素在滚动视图时淡入

实战|如何使用JavaScript访问设备前后摄像头

仅3行核心CSS代码的rate评分组件

使用JavaScript的padStart和padEnd格式化字符串

Vue 3教程(适用于Vue 2用户)

JavaScript vs Dart  两者之间的比较

不要过度使用React.useCallback()

HTML页面生成器:使用JavaScript和Node创建CLI

React.js和Vue.js的语法并列比较

从零开始使用JavaScript制作自己的命令行(CLI工具)

Vue.js中编写更好的v-for循环的6种技巧

Fish vs. Zsh vs. Bash以及为什么要改用Fish

如果对你有帮助,还可以 在看、留言、 转发 ,这是对作者最大的帮助。


以上所述就是小编给大家介绍的《Fish vs. Zsh vs. Bash以及为什么要改用Fish》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

设计模式

设计模式

[美] Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides / 李英军、马晓星、蔡敏、刘建中 等 / 机械工业出版社 / 2000-9 / 35.00元

这本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。书中分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别有用。此书适合大学计算机专业的学生、研究生及相关人员参考。 书中涉及的设计模式并不描述新的或未经证实的设计,只收录了那些在不同系统中多次使用过的成功设计。一起来看看 《设计模式》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

SHA 加密
SHA 加密

SHA 加密工具