Fish Shell使用

前言

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
#!/bin/bash

因为不同 shell 的语法不同,所以需要指明 shell 类型。

fish shellbash shell 的 for 循环语法就不一致。
但是,这并不妨碍我们在 fish shell 中执行 bash shell 语法写的脚本。

Fish Shell优点

  • 完全不需要配置,开箱即用。省去了 zshoh-my-zsh 的配置麻烦。
  • 基于 history 自动提示
  • 可以自动补齐路径
  • 语法更人性化一些。例如,for 循环等,比 bash 的反人类语法好很多。

Fish Shell缺点

  • 语法和Bash和Zsh的语法有差异,网上大部分的命令无法运行,需要自己修改

安装Fish Shell

今天我们就安装Fish Shell来替换Bash Shell

官网:http://fishshell.com/

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