Mac开发必备工具(三)—— Fish shell
Fish shell
简介
fish 可以根据输入自动匹配历史命令。它的一大特点是开箱即用,没有zsh那些繁琐的配置。官网:http://www.fishshell.com/。
安装与配置
在终端里使用Homebrew安装,直接输入 brew install fish
等待安装完成即可。安装完了以后还不能用,因为没把fish添加到 mac 的 shell 列表里,切换到 fish shell 时显示找不到fish shell,所以我们要先添加 fish 并设置一下 shell 。首先,用 shell 命令sudo vim /etc/shells
在 vim 中打开 Mac 的 shell 列表,执行结果如下:
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
按i
键,进入插入模式,然后在列表末尾加上/usr/local/bin/fish
。最后文件内容如下:
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/fish
最后,按 esc 键跳到命令模式,输入:wq
命令保存文件并退出vim。当前模式还是 bash shell 模式,要切换到 fish shell 需要输入 fish
命令。每次都输入命令切换 shell 比较繁琐,我们可以通过如下命令从 bash 切换到 fish :
chsh -s /usr/local/bin/fish
也可以通过如下命令切回到 bash:
chsh -s /bin/bash
常用快捷键
- 自动建议
Fish 会自动在光标后面给出建议,颜色为灰色。按下→
或Control + F
表示采纳建议,按下Alt + →
表示只采纳一部分。 - Tab 键补全
按下Tab
键,Fish 将尝试自动补全命令、参数或路径,如果有多条补全建议,可以继续使用Tab
键在不同建议间切换。
其他
因为博主并不是天天跟命令行打交道,shell 也根本不会,只是在学习和工作中偶尔会用到命令行,敲几行命令执行一些操作,所以这篇文章只是简单的介绍 Fish shell,作为一个学习的记录,想深入了解的可以访问官网。
有了 Homebrew + iTerm 2 + Fish shell,对命令行有畏惧和抵触情绪的「终端恐惧症患者」再也不用头疼了。关于 Homebrew 和 iTerm 2 的介绍请看我的另外两篇文章:Mac开发必备工具(一)—— Homebrew、Mac开发必备工具(二)—— iTerm 2。
参考资料
同系列文章
本文作者: Sheh伟伟
本文链接: http://davidsheh.github.io/2017/08/28/mac-fishshell/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
Mac开发必备工具(三)—— Fish shell的更多相关文章
- Mac开发必备工具(二)—— iTerm 2
iTerm 2 简介 iTerm 2 is a terminal emulator for Mac OS X that does amazing things. iTerm 2 有很多能够提升效率的实 ...
- Mac开发必备工具(一)—— Homebrew
Homebrew 简介 macOS 缺失的软件包管理器.使用 Homebrew 安装 Apple 没有预装但 你需要的东西.官网有中文说明. 安装与配置 Homebrew 的安装非常简单,将下面这条命 ...
- Web前端开发必备工具推荐
http://gaohaixian.blog.163.com/blog/static/12326010520114265223489/不管你做前端开发还是网页重构,前端工具都起着非常重要的作用,这里向 ...
- 敏捷开发--必备工具Jira&Confluence学习视频
敏捷开发必备工具:Jira+confluence,完美组合. 入门培训视频,内含Jira, Confluence, BigGantt, Zephyr, Tempo, Question, ScriptR ...
- Java开发必备工具 ------------工欲善其事,必先利其器
java企业级开发基本工具 一.开发必备工具 1.Java开发环境 JDK (官网下载即可,需要注册账户) JRE 2.Java企业编码开发工具 IntelliJ IDEA(建议使用Idea,插件使用 ...
- ASP.NET Core MVC 入门到精通 - 1. 开发必备工具 (2021)
环境: .NET 5 ASP.NET Core MVC 1. .NET 5 作为一个资深.NET工程师,说句实话,.NET没落了,在国内更加的没落.之前做过8年node.js/前端,现如今又转回了.N ...
- mac 开发必备软件(不断update ing...)
整理下mac环境下, 开发必备的一些软件吧, 由于不断要更新ing, 用到啥就写啥~球轻拍 1.host 绑定切换神器 a.gas mask : 只能切换单个自定义的host文件 b.ihosts(推 ...
- xamarin开发的mac开发小工具集合
兄弟们我拖控件拖到了mac系统去了, 工具上传到百度网盘,下载地址 链接:https://pan.baidu.com/s/1Q64zoRjE3u66jJnzF8rhww提取码:ljx2 这款工具我是用 ...
- 介绍.NET 开发必备工具 .NET Portability Analyzer
随着.NET的原来越开放,不仅仅是开源这么简单了,也意味着.NET程序员要关注越来越多的平台,涵盖.NET Mic Framework, Xamarin,Mono,.NET等等,从windows到li ...
随机推荐
- Educational Codeforces Round 13——D. Iterated Linear Function(矩阵快速幂或普通快速幂水题)
D. Iterated Linear Function time limit per test 1 second memory limit per test 256 megabytes input ...
- BZOJ 3569 DZY Loves Chinese II ——线性基
[题目分析] 腊鸡题目卡题面. 大概的意思就是给一张无向图,每次删掉其中一些边,问是否联通. 首先想到的是Bitset,可以做到n^2/64.显然过不了. 然而这是lyd在给我们讲线性基的时候的一道题 ...
- concurrentHashMap面试题
面试题: ConcurrentHashMap有哪些构造函数? ConcurrentHashMap使用什么技术来保证线程安全? ConcurrentHashMap的get方法是否要加锁,为什么? Con ...
- cf670E Correct Bracket Sequence Editor
Recently Polycarp started to develop a text editor that works only with correct bracket sequences (a ...
- uva 550 有趣的乘法(dfs)
题目大意:给三个数A(进制).B(如*****7的最后一个数字7).C(*****7*4的后面的因数4)求符合条件下的第一个因数的位数最少 例子: 179487 * 4 = 717948 (10进制) ...
- Python入门--6--今天抄袭人家一篇日志--numpy这个
Numpy NumPy的主要对象是同种元素的多维数组. 这是一个所有元素都是同一类型.通过一个正整数元祖索引的元素表格(通常元素都是数字) 在Numpy中维度(dimensions)叫做:轴 轴的个数 ...
- Yii 之控制器创建使用
在根目录下的controllers目录下创建控制器HelloController.php: <?php namespace app\controllers; use yii\web\Contro ...
- jvisualvm远程监控 Visual GC plugin NOT supported for this JVM
1. 找到jdk安装目录. 2. 进入jdk的 bin目录,新建文件jstatd.all.policy. 3.编辑jstatd.all.policy文件,内容如下: 4. 给jstatd.all.po ...
- spring data jpa使用原生sql查询
spring data jpa使用原生sql查询 @Repository public interface AjDao extends JpaRepository<Aj,String> { ...
- TraceTool 跟踪工具的瑞士军刀(C++版使用)
TraceTool查看器能够显示多种类型的来源(从提供的框架.日志文件.事件日志.或者OutputDebugString方法).一个简单而强大的client框架发送简单的跟踪,分组跟踪.类和对象浏览器 ...