什么是 Fish

作为一个程序员,难免会和命令行打交道。而提及到命令行,那 Shell 肯定绕不开,说白了,其实学习各种命令实质就是在学习 Shell。

当前市面上有很多 Shell,用的最多的可能就是 Bash 和 zsh 了。比如 macOS 中默认的 Shell 就是 Bash,然后之前也用过一段时间 zsh,两者各有千秋,看自己的喜好,不过个人觉得总体来讲 zsh 更好用!

zsh 虽然比较强大,也提供了各种丰富的插件,但有一点就是略为臃肿,用起来感觉太重了。无意中在网上冲浪是发现了 Fish 这个 Shell,于是用了一段时间,最后在 zsh 和 Fish 中选择了 Fish,于是特在此记录安装过程。

Fish 是 “the friendly interactive shell” 的简称,最大特点是简单易用。Fish 做到了开箱即用,不需要任何配置,提供了许多其他 Shell 需要通过配置才能使用的功能。如果你既想要一个好用的 Shell,又不要去配置各种配置,那么推荐尝试一下 Fish。

安装

这里使用 homebrew 进行安装,如果你还没有 homebrew,那么推荐你安装一下,这可是 macOS 中的一大神器。

当然,在你安装 homebrew 时,可以使用官网所提供的脚本:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

不过基本上都会安装失败,此时大概率会报如下错误。

curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused

当然这也不是我们网络的问题,主要是 http://raw.githubusercontent.com 访问实在不稳定,因此推荐使用以下这种更加高效的方式。

/usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install)"

安装好 homebrew 之后,使用如下命令进行安装即可。

brew install fish

如果顺利的话,此时是可以安装成功的,但如果你也和我一样在安装时报以下错误信息,那么你可以根据下面的解决方法尝试解决。

Error: No such file or directory @ rb_sysopen - /Users/cunyu/Library/Caches/Homebrew/downloads/7c65a980f7151e14dc5cf1e45ff29b9456a318d6868b1e78a7cd9369a3de144b--pcre2-10.39.arm64_monterey.bottle.tar.gz

这是因为 pcre2-10.39.arm64_monterey 依赖包下载失败了,则可以单独将依赖包下载安装,从而避免依赖版本的错误。

brew install pcre2

接着再使用上面安装 Fish 的命令进行安装即可。

切换默认 shell

虽然我们已经安装好了 Fish,但是我们还要对它进行手动切换才能生效。

首先使用以下的命令来查看下本机中的 shell,默认情况下 fish-shell 应该还没用加到 shell 列表中的。

cat /etc/shells

接着,我们手动来更改 shell 列表,使用如下命令即可。使用 sudo 是因为要用到管理员的权限,所以这里还需要你知道管理员的密码。

sudo vim /etc/shells

然后将 Fish 添加进去到 shell 列表中。

/opt/homebrew/bin/fish

我的电脑安装后 Fish 是位于上面的位置,但是如果你不确定你安装后不知道在哪儿,那么可以使用以下命令进行查询 Fish 所在位置。

whereis fish

最后则是切换默认 shell,让我们之后打开终端后都是使用 Fish,运行如下命令即可。

chsh -s /opt/homebrew/bin/fish

至此,我们的 Fish 就安装成功了,退出终端后重新打开终端即可使用安装好的 Fish

安装 Oh My Fish

官网提供了两种方式,第一种是直接在线安装。

curl -L github.com/oh-my-fish/oh-my-fish/raw/master/bin/install | fish

第二种则是通过将脚本下载之后再进行安装。

curl -L github.com/oh-my-fish/oh-my-fish/raw/master/bin/install > install
fish install

两种方法我都试了以下,第一种呢大概率是不会成功的,那么我们选择第二种,将脚本下载之后安装。但是同样的使用这个命令可能会失败,此时则可以去 https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install 把脚本内容复制到本地的一个文件中。然后再用以下命令安装即可。

fish 脚本文件名

安装好 Oh My Fish 之后,我们就可以安装一个漂亮的主题了。

如果要查看所有可用的主题,那么可以使用如下命令。

omf theme

可以看到还是有很多主题的,确定好之后,接下来就可以安装我们心仪的一款主题了,安装命令如下。

omf install 主题名

最后则是效果预览了,这里我自己是安装了 randomrussel,最终的效果预览如下。

此外,Oh My Fish 辅助命令工具 omf 还提供了一些常用命令用于管理插件和主题。

命令 说明
omf update 更新自身和已安装的所有插件及默认主题
omf list 显示本地已安装的所有插件
omf install [url|name] 安装一个或多个插件
omf destroy 卸载 Oh My Fish

总结

以上就是我们关于 Fish 的安装以及简单的配置教程了,如果你也想拥有如此酷炫的终端,那就赶紧来试试吧!

iTerm2 + Fish 打造高效终端相关推荐

  1. 使用 ohmyzsh 打造 windows、ubuntu、mac 系统高效终端命令行工具

    如果觉得内容不错,可以设为星标置顶我的公众号 原标题名:oh my zsh 和 windows git bash 设置别名提高效率 写于2018年06月03日 在我的微信交流群中听闻很多前端开发比较贫 ...

  2. Linux技巧--打造高效工作环境

    程序员是一个很懒的群体,总想着能够让代码为自己干活,他们不断地把工作生活中的一些事情用代码自动化了,从而让整个社会的效率运作地越来越高.所以,程序员在准备去优化这个世界的时候,都会先要优化自己的工作环 ...

  3. 打造高效的SHELL工作环境

    程序员是一个很懒的群体,总想着能够让代码为自己干活,他们不断地把工作生活中的一些事情用代码自动化了,从而让整个社会的效率运作地越来越高.所以,程序员在准备去优化这个世界的时候,都会先要优化自己的工作环 ...

  4. Mac 打造高效工作流

    现在很多开发者都选择 Mac 电脑来进行开发,但是很多开发者对 Mac 其实了解并不是很多,只是使用了它很小的一部分功能,那么本场 Chat 主要结合我自己的一些实践来讲一下如何打造高效 Mac 工作 ...

  5. 2020 OPPO开发者大会:融合共创 打造多终端、跨场景的智能化生活

    2020年9月24日,2020 OPPO开发者大会(ODC20)正式召开.大会以"智融合 共未来"为主题,OPPO正式发布了ColorOS 11.启能行动2.0和HeyTap健康平 ...

  6. 2020 OPPO开发者大会:融合共创,打造多终端、跨场景的智能化生活

    2020年9月24日,2020 OPPO开发者大会(ODC20)在线上举办.大会以"智融合 共未来"为主题,OPPO正式发布了ColorOS 11.启能行动2.0和HeyTap健康 ...

  7. 打造高效前端工作环境 - tmux

    打造高效前端工作环境 - tmux 前言  现在前端开发可不容易啊,先打开个VIM,然后再打开个lite-server,一不小心写个ES2015还要打开个gulp来做预编译,如果能把这么多个窗口放在一 ...

  8. 黑群晖vmm专业版_Virtual Machine Manager 专业版打造高效安全虚拟环境

    Virtual Machine Manager 专业版打造高效安全虚拟环境 2020年06月30日 中国上海-2018 年 6 月 20 日-群晖官网科技正式推出 Virtual Machine Ma ...

  9. 打造高效研发团队 (4) —— 团队文化篇

    原文:https://my.oschina.net/huangyong/blog/1823660 软件开发是一场需要集体智慧的运动,它的成功不完全属于团队中任何一个人.然而,团队成员们做人做事的风格却 ...

  10. 打造高效的项目团队,促进项目进度管理

    项目管理是项目的管理者,在有限的资源约束下,运用系统的观点.方法和理论,对项目涉及的全部工作进行有效地管理.从项目的投资决策到项目结束的全过程进行计划.组织.指挥.协调.控制和评价,以实现项目的目标. ...

最新文章

  1. 支撑亿级用户“刷手机”​,百度Feed流背后的新技术装备有多牛?
  2. 装机必备软件 - 吾爱破解论坛会员专用版
  3. 【微信小程序】使用Hystrix的插件机制
  4. qt调用Linux脚本范例,QT下实现对Linux Shell调用的几种方法
  5. 杂项:SVN 常用方法
  6. Android开发笔记(一百六十三)高仿京东的沉浸式状态栏
  7. 江苏机器人竞赛南航_挑战不止 热血不息!1000余名青少年决战江苏省机器人普及大赛!...
  8. 使用MATLAB贝叶斯工具箱(BNT),进行吉布斯采样(Gibbs Sampling)之前需要做的编译工作...
  9. python爬虫问题:error: command 'gcc' failed with exit status 1
  10. 拓端tecdat|R语言乘法GARCH模型对高频交易数据进行波动性预测
  11. atitit.报表最佳实践oae 与报表引擎选型
  12. 全国计算机等级考试系统运行异常,全国计算机等级考试系统安装问题集锦
  13. 计算机组成原理唐朔飞重点,计算机组成原理唐朔飞高分笔记
  14. java实现头脑王者辅助答题_头脑王者2答题神器app-头脑王者2答题辅助神器安卓版v1.0...
  15. 使用组件,一直报错Unknown custom element: <etregister> - did you register the component correctly?
  16. SEO|解析关键词密度与分布
  17. Automatic Panoramic Image Stitching using Invariant Features笔记
  18. PHP 屏幕亮度,笔记本电脑亮度怎么调节
  19. 玩客云设置linux权限,玩客云退出链克怎么禁止硬盘缓存?.onething_data文件禁止缓存玩客云关闭上传退出链克...
  20. 创意非凡--找到许多人熟视无睹的宝藏!

热门文章

  1. 3. 什么是icmp?icmp与ip的关系_Java抽象类、内部、类接口到底是什么?
  2. python 输入参数有误_Python OpenCV错误:输入参数的大小不匹配
  3. dart参数传方法_Dart是值传递还是引用传递?
  4. oracle同一天,Oracle统计一个小时内,一天内、一个星期内、一个月内、一年内的数据...
  5. 事务机制主要是利用undo、redo日志?
  6. 四、对象创建和垃圾回收流程
  7. linux7设置上下文权限,【CONTEXT】自定义CONTEXT(上下文)
  8. 使用idea导入远程git版本库项目
  9. python getopt的用法
  10. easyUI_rowdata