前言
Shell 有好几种,目前最常用是 Bash 和 zsh。
对比
- bash系统自带
 - zsh iTerm2自带
 - fish iTerm2中也可以使用fish作为shell工具
 
但是,在我看来,
基本使用的话 Fish Shell 最好用。
经常配各种环境的还是建议用Zsh,因为网上能搜到的语法大都是Bash的。
我现在就是iTerm2结合Fish使用。
最新又用Mac开发Flutter时,被Fish坑了,配置环境变量都是按Fish的语法配的,但是最终下载项目依赖的时候就一直在旋转,也不报错,切换其它Bash就好了,就换回
ZSH了。所以建议可以安装Fish,但是不要把Fish设置为默认Shell。
Zsh可以完美代替Bash,具体区别可查看:《Zsh和Bash区别》
我们 shell 脚本第一行要加
1  | 
因为不同 shell 的语法不同,所以需要指明 shell 类型。
fish shell 与 bash shell 的 for 循环语法就不一致。
但是,这并不妨碍我们在 fish shell 中执行 bash shell 语法写的脚本。
Fish Shell优点
- 完全不需要配置,开箱即用。省去了 zsh 和 oh-my-zsh 的配置麻烦。
 - 基于 history 自动提示
 - 可以自动补齐路径
 - 语法更人性化一些。例如,for 循环等,比 bash 的反人类语法好很多。
 
Fish Shell缺点
- 语法和Bash和Zsh的语法有差异,网上大部分的命令无法运行,需要自己修改
 
安装Fish Shell
今天我们就安装Fish Shell来替换Bash Shell
Mac上安装
1  | brew install fish  | 
其他安装方式见官网
配置
配置
1  | fish_config  | 
查看fish程序的路径
1  | which fish  | 
设置为默认shell为fish
1  | chsh -s /usr/bin/fish  | 
或者
1  | chsh -s $(which fish)  | 
设置为默认shell为zsh
1  | chsh -s /bin/zsh  | 
设置为默认shell为bash
1  | chsh -s /bin/bash  | 
切换
切换bash shell
1  | bash  | 
切换fish shell
1  | fish  | 
切换zsh shell
1  | zsh  | 
Oh My Fish
使用 Oh My Fish (简称 omf ) ,让我们的 Fish shell 变得漂亮且优雅。
它是一个 Fishshell 框架,允许你安装扩展或更改你的 shell 外观的软件包。它简单易用,快速可扩展。使用 omf,你可以根据你的想法,很容易地安装主题,丰富你的外观和安装插件来调整你的 Fish shell。
安装
官网:https://github.com/oh-my-fish/oh-my-fish
安装
1  | curl -L https://get.oh-my.fish | fish  | 
列出所有的安装包,运行:
1  | omf list  | 
这条命令将显示已安装的主题和插件。请注意,包可以是主题或插件。安装包意味着安装主题和插件。
右方向键补全提示
主题配置
现在让我们看一下可用的和已安装的主题列表。
为此,运行:
1  | omf theme  | 
如你所见,我们只有一个已安装的主题,这是默认的,但是还有大量可用的主题。在安装之前,你在这里可以预览所有可用的主题。这个页面包含了所有的主题细节,特性,每个主题的截图示例,以及哪个主题适合谁。
比如我们安装这个主题
1  | omf install bobthefish  | 
安装后就自动使用新主题了
切换主题
1  | omf theme default  | 
排错及信息查看
1  | omf doctor  | 
卸载
1  | omf destroy  |