iTerm2 + Fish 打造高效终端
什么是 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 打造高效终端相关推荐
- 使用 ohmyzsh 打造 windows、ubuntu、mac 系统高效终端命令行工具
如果觉得内容不错,可以设为星标置顶我的公众号 原标题名:oh my zsh 和 windows git bash 设置别名提高效率 写于2018年06月03日 在我的微信交流群中听闻很多前端开发比较贫 ...
- Linux技巧--打造高效工作环境
程序员是一个很懒的群体,总想着能够让代码为自己干活,他们不断地把工作生活中的一些事情用代码自动化了,从而让整个社会的效率运作地越来越高.所以,程序员在准备去优化这个世界的时候,都会先要优化自己的工作环 ...
- 打造高效的SHELL工作环境
程序员是一个很懒的群体,总想着能够让代码为自己干活,他们不断地把工作生活中的一些事情用代码自动化了,从而让整个社会的效率运作地越来越高.所以,程序员在准备去优化这个世界的时候,都会先要优化自己的工作环 ...
- Mac 打造高效工作流
现在很多开发者都选择 Mac 电脑来进行开发,但是很多开发者对 Mac 其实了解并不是很多,只是使用了它很小的一部分功能,那么本场 Chat 主要结合我自己的一些实践来讲一下如何打造高效 Mac 工作 ...
- 2020 OPPO开发者大会:融合共创 打造多终端、跨场景的智能化生活
2020年9月24日,2020 OPPO开发者大会(ODC20)正式召开.大会以"智融合 共未来"为主题,OPPO正式发布了ColorOS 11.启能行动2.0和HeyTap健康平 ...
- 2020 OPPO开发者大会:融合共创,打造多终端、跨场景的智能化生活
2020年9月24日,2020 OPPO开发者大会(ODC20)在线上举办.大会以"智融合 共未来"为主题,OPPO正式发布了ColorOS 11.启能行动2.0和HeyTap健康 ...
- 打造高效前端工作环境 - tmux
打造高效前端工作环境 - tmux 前言 现在前端开发可不容易啊,先打开个VIM,然后再打开个lite-server,一不小心写个ES2015还要打开个gulp来做预编译,如果能把这么多个窗口放在一 ...
- 黑群晖vmm专业版_Virtual Machine Manager 专业版打造高效安全虚拟环境
Virtual Machine Manager 专业版打造高效安全虚拟环境 2020年06月30日 中国上海-2018 年 6 月 20 日-群晖官网科技正式推出 Virtual Machine Ma ...
- 打造高效研发团队 (4) —— 团队文化篇
原文:https://my.oschina.net/huangyong/blog/1823660 软件开发是一场需要集体智慧的运动,它的成功不完全属于团队中任何一个人.然而,团队成员们做人做事的风格却 ...
- 打造高效的项目团队,促进项目进度管理
项目管理是项目的管理者,在有限的资源约束下,运用系统的观点.方法和理论,对项目涉及的全部工作进行有效地管理.从项目的投资决策到项目结束的全过程进行计划.组织.指挥.协调.控制和评价,以实现项目的目标. ...
最新文章
- 支撑亿级用户“刷手机”​,百度Feed流背后的新技术装备有多牛?
- 装机必备软件 - 吾爱破解论坛会员专用版
- 【微信小程序】使用Hystrix的插件机制
- qt调用Linux脚本范例,QT下实现对Linux Shell调用的几种方法
- 杂项:SVN 常用方法
- Android开发笔记(一百六十三)高仿京东的沉浸式状态栏
- 江苏机器人竞赛南航_挑战不止 热血不息!1000余名青少年决战江苏省机器人普及大赛!...
- 使用MATLAB贝叶斯工具箱(BNT),进行吉布斯采样(Gibbs Sampling)之前需要做的编译工作...
- python爬虫问题:error: command 'gcc' failed with exit status 1
- 拓端tecdat|R语言乘法GARCH模型对高频交易数据进行波动性预测
- atitit.报表最佳实践oae 与报表引擎选型
- 全国计算机等级考试系统运行异常,全国计算机等级考试系统安装问题集锦
- 计算机组成原理唐朔飞重点,计算机组成原理唐朔飞高分笔记
- java实现头脑王者辅助答题_头脑王者2答题神器app-头脑王者2答题辅助神器安卓版v1.0...
- 使用组件,一直报错Unknown custom element: <etregister> - did you register the component correctly?
- SEO|解析关键词密度与分布
- Automatic Panoramic Image Stitching using Invariant Features笔记
- PHP 屏幕亮度,笔记本电脑亮度怎么调节
- 玩客云设置linux权限,玩客云退出链克怎么禁止硬盘缓存?.onething_data文件禁止缓存玩客云关闭上传退出链克...
- 创意非凡--找到许多人熟视无睹的宝藏!
热门文章
- 3. 什么是icmp?icmp与ip的关系_Java抽象类、内部、类接口到底是什么?
- python 输入参数有误_Python OpenCV错误:输入参数的大小不匹配
- dart参数传方法_Dart是值传递还是引用传递?
- oracle同一天,Oracle统计一个小时内,一天内、一个星期内、一个月内、一年内的数据...
- 事务机制主要是利用undo、redo日志?
- 四、对象创建和垃圾回收流程
- linux7设置上下文权限,【CONTEXT】自定义CONTEXT(上下文)
- 使用idea导入远程git版本库项目
- python getopt的用法
- easyUI_rowdata