安装以及配置

Linux和OS X基本都可以通过源来安装,实在不行就下载源码编译,不难的。

安装好第一步是修改OS默认shell:

chsh -s /usr/bin/fish

然后就可以直接使用了,就是这么简单。你不需要面对zsh浩如烟海的配置文件,也不需要去github clone一个“Oh My Zsh”。

当然如果你实在想配置,输入fish_config命令会启动web管理界面。

什么?逼格太低,非要手动配置。OK, ~/.config/fish/config.fish这就是fish的配置文件,类似于bash的.bashrc。

我喜欢配置三件东西:

  1. 问候语(配置config.fish):

    set fish_greeting 'Talk is cheap. Show me the code.'

  2. 命令行提示(在web界面配置,完成后会生成~/.config/fish/functions/fish_prompt.fish):

    Selection_001.png

  3. 设置接受建议(第三条优势)的快捷键:

    修改fish_prompt.fish,增加一条语句:bind \ej accept-autosuggestion。同时按下alt和j将接受建议。

优势

  1. 语法高亮

    不存在的命令会显示为红色。

    Selection_001.png

    Selection_002.png

  2. 通配符

    集成find命令,递归搜索神器。

    Selection_003.png

  3. 智能建议

    当按下几个字母后,fish会有智能建议,按下向右箭头将接受建议。

    Selection_004.png

  4. Tab补全

    如果补全项超过1个,会列出全部以供选择。

    Selection_005.png

  5. 变量

    fish是通过set来代替“=”对变量赋值的。

    Selection_006.png

    将某目录加入到PATH中也是用set(配置config.fish):

    set PATH $PATH /home/mountain/shell

  6. Exports

    fish没有export命令,需要用set -x来代替。如果需要擦除变量,就执行set -e。

    Selection_007.png

    Selection_008.png

  7. 列表

    有些变量有多个值,例如$PATH,fish会把所有值组装成一个列表,可以迭代或者通过下标访问。

    Selection_001.png

  8. 命令替换

    用法很简单,把命令放在括号里即可。

    Selection_002.png

  9. 语法糖

    fish的常用关键字(if、switch、function等)比bash高端、实用很多,但是考虑到公司的生产环境根本不可能安装fish,导致脚本无法移植,所以对于这部分只能忍痛放弃。

Fish入门的更多相关文章

  1. Fish Shell使用心得

    Fish的官网宣传语是 Finally, a command line shell for the 90s. 翻译过来就是 Fish shell 是一个为90后准备的 shell. 有人说:" ...

  2. 数独高阶技巧入门之三——Fish

    术语Fish代表了一组工作原理相同的关于特定候选数的解题技巧(Fish技巧直接产生自数独规则——每个单元内的数字都不能重复),Fish家族成员包括“体型”从小到大的X-Wing.Swordfish. ...

  3. 【翻译】Fluent NHibernate介绍和入门指南

    英文原文地址:https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started 翻译原文地址:http://www.cnblogs ...

  4. Fish Shell

    今天看到阮一峰同学的一篇博客(Fish shell 入门教程),讲述的非常详细.清楚,有兴趣的可以直接转去查看此文,本文仅提供一下个人使用心得. 一.fish shell 想必接触过类unix(包括w ...

  5. Python编程从入门到实践笔记——用户输入和while循环

    Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...

  6. Ansible 入门指南 - 安装及 Ad-Hoc 命令使用

    安装及配置 ansible Ansilbe 管理员节点和远程主机节点通过 SSH 协议进行通信.所以 Ansible 配置的时候只需要保证从 Ansible 管理节点通过 SSH 能够连接到被管理的远 ...

  7. Python入门基础学习 一

    Python入门基础学习 一 Python下载及安装 下载地址:https://www.python.org/,选择最新的版本下载 稍等一会,安装完成. 简单语句 从idle启动Python:IDLE ...

  8. python 基本语法速览,快速入门

    https://zhuanlan.zhihu.com/p/24536868 学习参考于这个博文. 我做一个笔记. 关于python一些常用的语法快速的预览,适合已经掌握一门编程语言的人.零基础,没有任 ...

  9. java入门概念梳理总结

    Java入门学习 简介 public class HelloWorld { public static void main(String []args) { System.out.println(&q ...

随机推荐

  1. Qt之事件系统

    简述 在Qt中,事件就是对象,派生自QEvent抽象类,用来表示在应用程序中发生的事件,或是应用程序需要处理的外部活动产生的事件. Events可以被任何QObject派生的子类实例对象接收和处理,但 ...

  2. hduoj-----(2896)病毒侵袭(ac自动机)

    病毒侵袭 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  3. java(课程设计之记事本界面部分代码公布)

    代码:涉及记事本的一些界面......!! /* *java课程设计之记事本(coder @Gxjun) * 编写一个记事本程序 * 要求: * 用图形用户界面实现. * 能实现编辑.保存.另存为.查 ...

  4. Path Sum [LeetCode]

    Problem Description: http://oj.leetcode.com/problems/path-sum/ Pretty easy. /** * Definition for bin ...

  5. Hive的Security配置

    为了更好地使用好Hive,我将<Programming Hive>的Security章节取出来,翻译了一下. Hive还是支持相当多的权限管理功能,满足一般数据仓库的使用. Hive由一个 ...

  6. 【转载】Gambit使用教程

    第一章 Gambit使用 Gambit介绍 网格的划分使用Gambit软件,首先要启动Gambit,在Dos下输入Gambit <filemane>,文件名如果已经存在,要加上参数-old ...

  7. Objective-C:Foundation框架-常用类-NSMutableArray

    NSMutableArray是NSArray对的子类,它是可变的,可以随意添加或者删除元素.与Array,也有静态和动态两种创建方法.也可已使用NSArray的方法来创建NSMutableArray. ...

  8. (巨坑)改了tpl文件之后,前端效果没反应

    通常前端修改很小的部分代码,并不会立即显示出效果.比如,原来是 ,修改后是 虽然只是加多了一个函数,但是作用很大,这种情况下,可能是由于浏览器缓存的原因,修改后的代码没有被重新加载.这个时候,只需要在 ...

  9. [转]我来Hacking JDBC,你并不需要它

    我们喜欢和JDBC打交道,以前从未有人这样说过.很严肃的说,JDBC是一个非常优秀的API.这可能是现在Java能够成为一个受欢迎的平台的重要原因之一. 在JDK1.1之前,ODBC出现之前(很久之前 ...

  10. js数量添加(如购物车添加,删减数量)

    <div class="fl shop-num ml24"><input type="button" style=" border- ...