前言
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 |