来源: https://medium.com/better-programming,翻译 :Dunizb
事实上,大多数开发人员都喜欢Unix和类似Unix(基于Linux)的操作系统,例如macOS,Ubuntu等。 它们稳定,强大,高度可定制,并且具有强大的Unix Shell。
什么是UNIX Shell?
Shell是基础操作系统的接口。它允许你使用文本和命令来执行操作,并且为用户提供了高级功能,例如能够创建脚本。
Unix Shell是一个功能强大的工具,使 程序员 仅需几句话就可以完成复杂的任务。有很多广泛使用的Shell,例如Bourne Shell,C Shell等。
我特别使用了Bash、Zsh和fish shell,下面是我对为什么切换到fish甚至Zsh是使你的编程体验更愉快的最好方法之一的想法。
一分钟介绍Bash,Zsh和fish
Bash
Bash是最常见的Linux Shell,如果你在Mac上打开终端(直到macOS Mojave为止),或者如果你以前使用过Linux,那么你会看到Bash。
它可以创建别名、创建函数、导出变量和运行命令,就像任何其他 shell 一样。尽管只有有限的可配置选项集,但它得到了广泛的应用,并且有大量用户已经习惯了它的用法和特性。
Zsh
Zsh与Bash类似,是另一个很棒的shell,它比Bash更快,更可自定义。
关于Zsh的最酷的事情之一是颜色自定义,你只需使用名为Oh My Zsh的框架即可更改shell的主题和颜色。
Zsh还具有许多其他有用的功能,包括拼写校正,在多个终端之间共享命令历史记录,命名目录快捷方式等。
Fish
在我看来,Fish,或者“友好的交互式Shell”,是最用户友好和交互式的Shell。
它比Zsh和Bash更具可定制性。它有很多很酷的特性,比如一致的语法、漂亮的制表符完成和语法高亮显示,很容易上手和使用,并且有很好的运行时帮助。
你只需使用名为Oh My Fish的框架即可更改shell的主题和颜色,与前面提到的shell不同,fish不是POSIX兼容的,但也并非如此。
通过在Bash文件的第一行中添加以下shebang行,您可以在Zsh和fish中运行Bash脚本。
#!/usr/bin/env bash
Fish有什么特别之处?
易于理解和使用
与需要大量设置才能按你希望的方式工作的其他shell不同,fish开箱即用即可完美工作。它附带了已经包含的最广泛使用的特性,当你开始使用它时,不需要安装任何额外的插件或调整任何配置文件,除非你愿意。它的语法简单,干净且一致。
语法高亮
语法高亮显示是我们都希望我们的CLI能够执行的功能。它可以节省大量的时间,也可以节省大量的时间和挫折感。好吧,fish就做到了,而且做得很好。
在你按回车键之前,它就会显示你的命令或要搜索的目录是否存在。在你按回车键之前,你就会知道你是否输入错了什么。这样一来,人们就更容易解析命令,发现错误。
它以红色突出显示(大多数)错误,例如拼写错误的命令,拼写错误的选项,从不存在的文件中读取,括号和引号不匹配以及许多其他常见错误。
它还具有突出显示匹配的引号和括号的功能。哦,它很漂亮,色彩丰富。
fish shell的配置
Fish社区维护了Oh My Fish,这是一个受Oh My Zsh启发的shell框架。它提供了许多精美的提示主题和超赞的插件,轻巧,超赞且易于使用。
它还提供了基于Web的配置功能。只需输入:
fish_config
你将进入可自定义shell皮肤的网站。
内嵌搜索历史
这是该Shell的一个交互式功能。你开始输入一个命令,然后按向上键,可以看到Shell历史记录中所有你之前使用该命令的时间。
要搜索历史记录,只需输入搜索查询,然后按向上键即可。通过使用向上和向下箭头,你可以搜索较早和较新的匹配。fish的历史记录会自动删除重复匹配,匹配的子串会被高亮显示。
这些功能使搜索和重用以前的命令变得更快。
内嵌自动建议
Fish会在你键入时提示命令,并在光标右侧显示灰色的提示,如果你输入错误的命令,它将以红色显示,表示该命令无效。
它还会根据你的历史记录和有效文件,在你输入的同时,提示你最常用的命令和自动完成。
使用人机界面数据完成制表页
Fish可以解析各种格式的CLI工具手册页,输入一个命令,然后按 "tab" 通过所有建议的自动完成。
使用fish的缺点
没有什么是完美的,也不应该是完美的。
不支持历史扩展(“!!”)
Fish不支持 !!
,但是你可以使用Oh My Fish Shell框架并安装 bang-bang
插件以在fish Shell中使用此快捷方式。
慢于Bash
Fish的大多数功能都将便利放在优先位置,而不是速度吗,这是Bash更好地编写Shell脚本的原因之一。
总结
Fish充满了令人敬畏的功能,它将使你的工作效率提升到一个不同的水平。它有非常完善的文档,而且安装起来也很容易。
如果不是一切都做得最好,它具有遵循基本UNIX哲学的功能:“只做一件事,并做好。”
如果你是一个广泛使用终端来完成事情的程序员,那么你需要从目前的Shell中走出来,现在就开始用fish。
前端大礼包新增课程了:100:
新增课程 《再学JavaScript ES(5-10)全版本语法大全》 ,学习当下和未来大热技术!公众号中 回复关键字:“前端大礼包” 即可获取,不定期新增新课程,新增课程都会通知大家。
近期文章
DOM API中append和appendChild的三个不同点
你知道Object.entries(),但你还知道有Object.fromEntries()吗?
仅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》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- RedHat Satellite 弃 MongoDB ,全面改用 PostgreSQL
- RedHat Satellite 弃 MongoDB ,全面改用 PostgreSQL
- 跟上队伍,Win 版 Firefox 弃用 MSVC 改用 Clang
- React 16.0.0 发布,去除专利条款,改用 MIT 许可证
- GhostBSD 18.10 RC1 发布,改用基于 TrueOS 系统
- 下一代 HTTP/3 协议将弃用 TCP 改用 QUIC
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
设计模式
[美] Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides / 李英军、马晓星、蔡敏、刘建中 等 / 机械工业出版社 / 2000-9 / 35.00元
这本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。书中分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别有用。此书适合大学计算机专业的学生、研究生及相关人员参考。 书中涉及的设计模式并不描述新的或未经证实的设计,只收录了那些在不同系统中多次使用过的成功设计。一起来看看 《设计模式》 这本书的介绍吧!