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

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

什么是UNIX Shell?

Shell是根底操作系统的接口。它允许你运用文本和指令来履行操作,并且为用户供给了高档功用,例如能够创立脚本。

Unix Sheld = & pl是一个功用强大的东西,使程序员仅需几句话就能够完结杂乱的任务。有很多广泛运用的So 8 =hell,例如Bourne Shek F u } # 3 8 l @ll,C Shell等。

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

一分钟介绍Bash,Zsh和fish

Bash

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

Bash是最常见的Linux Shell,假如你在Mac上翻开终端(直到macOS Mojaveo } 9为止),或许假如你曾经运用过LinY x E g oux,那么你会看到Bash。

它能够创立别名、创立函数、导出变量和运行指令,就6 l i Z ? ~S C W ; V任何其他sheg T : Yll相同。尽管只有有限的可装备选项集,但它得到了广泛的运用,并且有很多用户现已习惯了它的用法和特性。

Zsh

Zsh与Bash相似,是另一个很棒的shell,它比Bash+ ] H a g 2 J更快,H A – w ? W更可自定义。

关于Zsh的最酷的工作8 – q | V T S j之一是色彩V C 9 8 A F y ~ R自定义,你只需运用名为Oh My Zsh的结构即可更改shell的主题t ; n W p 1 p v和色彩。

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

Zsh还具有许多其他有用的功用,包括拼写校对,在多个终端之间同享指令前史记录o R R 3 0 9,命名目录快捷方法等。

Fish

在我7 L * 3 | = &看来,[ m ^ p i i GFish,或许“友爱的交互式Shell”,是最用户友爱和交互式的Shell。

它比Zsh和Bash更具可定制性。它有很多很酷的特性,比如一致的语法T x $ + 4 8 e、美丽的制表符完结和语法M a = d m % ? )高亮显现,很容易上手和运用,并且有很好的运行时协助。

你只需运用名为Oh My Fish的结构即可更改shell的主题和色d w z i x彩,与前面提到的shell不同,fish不是POSIX兼容的,但也并非如此。

经过在Bash文件的第一行中& 0 C ^增加以下shebang行,您能够在Zsh和fish中运行Bash脚本。

#!/usr/bin/env bash

Fish有什么特别之h 9 ; 9 2处?

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

易于了解和运用

与需要很多设置才干按你希望的方D ] O 6 g &法作业的其他shell不同,fish开箱即用即可完美作业。它附带了现已包括的最广3 / E 1 c }泛运用的特性,当你开端运用它时,不需要装置任何额定的插件或调整任何装备文件,除非你愿意。它的语法简单,干净且一致。

语法高亮

z G m P $ . D B法高亮显现是咱们都希望咱们的CLI能够履行的功用。它能够节约很多的时刻,也能够节约很多的时刻和挫折感。好吧,fish就做到了,并且做得很好。

在你按回车键之前,它就会显现你的指令或要查找的目录是否存在。在你按回车键之前,你就会知道你是否输入错了什么。这样一_ 8 q h ( b 0 F来,人们就更容易解析指令,发现过错。

它以赤色杰出显现(大多数)过错,例如拼写过错的指令,拼写过错的选项,从不存在的文件中X – K E % ) ^ O读取,括号和引号不匹配以及许多其他常见过错。

它还具有杰出显现匹配的引$ 3 x号和括号的功用。哦,它很美丽,色彩丰厚。

fish shell的装备

Fish社区保护了Oh My Fish,这是一个受Oh My Zsh启发的shell结构。它供给了许多精巧的提示主题和超赞的插件,轻盈,超赞且易于运用。

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

它还供给了依据Web的装备功用。只需输入:

fish_config

你将& a c q x进入可自定义shell皮S D $ A # b h g r肤的网站。

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

内嵌查找前史

这是该Shell的一个交互式功用。你开端输入一L t i & g Z个指令,然后按向上键,能够看到Shell前史记录中所有你之前运用该指令的时刻。

要查找前史记录,只需输入查找查询,然后按向上键即可。经过运用向上和向下箭头,你能够查找较早和较新的匹配。fish的前史记录会主动删除重复匹配,匹配的子串会被高亮显现。

这些功用使查找和重用曾经的指令变得更快。

h U X = 1 { C嵌主动主张

FishL & G E w =会在你键入时提示指令,并在光标右侧显现灰色的提示u A A A X 1 n,假如你输入过错的指令,它将以赤色显现,表明该指令无效。

它还会依据你的前史记录和有效文件,在你输4 R h f入的一起,提示你最常用的指令和主动完结。

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

运用人机界面数据完结制表页

Fish能够解析各种格局的CO 6 U / $ uLI东西手册页,输入一个指令,然后按 “tab” 经过所有主张的主动完结。

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

运用fish的缺陷

没有什么是完美的,也不应该! e H c | $ 9是完美的。

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

Fish不支持 !!,可是你能够运用Oh My Fish Shell结构并装置 bang-bang 插件以在fish Shell中运用此快捷方法。

慢于Bash

Fish的大多! J 3数功用都将便利放在优先位置b O t N _ H # q ;,而不是速度吗,这是Bash更好地编写Shell脚本的原因之一。

总结

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

假如不是一切都做得最好,它具有遵循基本UNIX哲学的$ n T @ : p $功用:“只做一件事,* ] U q # o U @并做好。”

假如你是一个广泛运用终端来完结工作的程序员,那m g !么你需要从目前的Shell中走出来,现在就开端用fish。

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

来历:medium.com/better-prog…,作者:Siddharth Mohanty,翻译:大众号《前端全栈开发者》

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