宇宙第一shell——fish入门

二逼青年用bash,普通青年用zsh,文艺青年用fish

首先郑重声明B人的两个技术癖好:

  1. Windows黑,以后推荐的所有工具都不会针对windows系统进行说明。
  2. 主流黑。凡是大部分人都知道的东西,我尽量不用,比如zsh,只为装逼。

安装以及配置

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

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

sudo -u [user] chsh -s /usr/bin/fish

OS X系统要确认/etc/shells文件包含/usr/local/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. X OS系统vs code命令行工具(配置config.fish)

    function code
    
      set location "$PWD/$argv"
    
      open -n -b "com.microsoft.VSCode" --args $location
    
    end
    
  3. 命令行提示(在web界面配置,完成后会生成~/.config/fish/functions/fish_prompt.fish):

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

    修改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

  1. Exports

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

    Selection_007.png
    Selection_008.png
  2. 列表

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

    Selection_001.png
  3. 命令替换

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

    Selection_002.png
  4. 语法糖

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

总结

这篇文章虽然字数不多,但是凝结了我不少心血,基本把官方文档全翻译了一遍,然后提取了简单实用的功能分享给大家,还有很多牛逼的功能限于我能力有限就不在这班门弄斧了。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 131,195评论 18 138
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 44,284评论 6 344
  • 第一节 Shell概述 1.Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送...
    littlexjing阅读 1,312评论 0 1
  • 命令行的艺术 前言 基础 日常使用 文件及数据处理 系统调试 单行脚本 冷门但有用 仅限 OS X 系统 仅限 W...
    进击的诺基亚阅读 3,584评论 0 19
  • 楔子 你知不知道,世间总会有不圆满的事? 你知不知道,不圆满之后总会有不愿归去的灵魂? 你知不知道,当你走过一棵椿...
    稻场旧事阅读 307评论 0 3
  • 我会一直爱你,直到四海枯竭,直到太阳把岩石融化,只要我一息尚存。 —...
    夏柯儿阅读 326评论 2 2
  • 这一周的融合瑜伽课上和大家分享的是一部我非常喜欢的电影《美食、祈祷、恋爱》还有影片中那些行走东西的好音乐,课程结束...
    驼驼在路上阅读 689评论 3 11
  • 马上就双11了,本来不打算些的,想了想还是些点什么吧,也许几年以后我有钱了也可以回忆道 哥曾经也吊丝过 😄 今...
    淘淘米阅读 80评论 0 1