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

一、fish shell

想必接触过类unix(包括windows的dos)的人对shell应该都不陌生。shell对于提高工作效率有非常大的帮助,但是繁杂的语句及命令使得shell使用起来较麻烦。图形化界面方便一般人的操作,但是效率不够高。fish shell兼顾了二者的优点,对shell进行了改进,使之更方便使用。具体介绍见fish shell

二、安装

在其官网中给出了各种系统的安装方式,本文以Ubuntu为例。安装命令如下(这就是普通shell):

sudo apt-add-repository ppa:fish-shell/release-2
sudo apt-get update
sudo apt-get install fish

PPA表示Personal Package Archives,也就是个人软件包集。所以第一行表示添加fish的个人软件包集,添加之后能获取到fish的最新版,当然也可以不加此行,直接从ubuntu的源中获取fish。今日(2017.5.2)实际测试使用ppa安装的版本为2.5.0,不使用ppa安装的版本为2.0.0。

三、功能

fish的强大之处就在于其有良好的交互和提示功能,能够帮助我们少输很多字母。其对历史命、命令补全、参数补全、路径补全、git等都有很好的支持。在Fish shell 入门教程已经介绍的很详细,可以参考。在这里补充一些细节。

3.1 配置

配置文件存放在~/.config/fish/config.fish中,但是默认情况下并没有此文件,如果需要在fish启动的时候添加自定义函数等,可以新建该文件,将函数写入。

3.2 函数与语法

其语法与普通shell少许相似(关于普通shell语法可以参考我的另一篇文章——shell脚本学习心得),部分概念即继承了bash又借鉴了其他高级语言程序。

fish的好处在于可以将函数放入上述配置文件中,这样一些命令的简写等就可以直接调用,在shell中可能需要通过设置别名来达到这一点。对于一些循环等操作,使用fish写脚本将更加容易。

并且fish可以直接在控制台中通过与在IDE中同样的方式书写循环等,如:

for file in *
echo $file
end

上述命令只要逐行输入即可,当输入end后fish会自动执行,在bash中无法实现此功能。这样可以更友好的进行批量操作等。

3.3 退出

直接按CTRL+D退出fish,返回bash。

四、总结

本文简单介绍了fish,请读者以阮一峰和官网文档为主,我在此仅为狗尾续貂。

临了再讲一个程序员的段子。一哥们看一美女很漂亮便跑过去躺到美女脚下,大喊:“姑娘你的男朋友掉了。”。结果就是一脚。。。

Fish Shell的更多相关文章

  1. anaconda的fish shell支持

    最近在用fish shell,但是无法使用conda的activate命令来激活环境.官方给的有解决方案 https://github.com/conda/conda/blob/5b97a96d78e ...

  2. fish shell 下gopath的设置问题

    GOPATH可以设置多个工程目录,linux下用冒号分隔(必须用冒号,fish shell的空格分割会出错),windows下用分号分隔,但是go get 只会下载pkg到第一个目录,但是编译的时候会 ...

  3. fish shell version

    如果你使用 fish shell, 想要自己定义变量,或者函数,或者alias, 不要使用      version     这个名字, 因为,version 这个名字 被 fish 本身占了.... ...

  4. Mac开发必备工具(三)—— Fish shell

    Fish shell 简介 fish 可以根据输入自动匹配历史命令.它的一大特点是开箱即用,没有zsh那些繁琐的配置.官网:http://www.fishshell.com/. 安装与配置 在终端里使 ...

  5. Fish Shell使用心得

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

  6. fish shell 自动补全子命令

    之前在 「创建 fish shell 自动补全文件」 中介绍了如何创建 fish 的补全文件,实现对命令的友好补全提示.通过形如 complete -c <command> -a [&qu ...

  7. Mac安装fish shell

    1.brew update 2.brew install fish 3.sudo vi /etc/shells 增加内容:/usr/local/bin/fish   ##增加fish到shell环境变 ...

  8. linux工具————fish shell

    1.说明 fish is a fully-equipped command line shell (like bash or zsh) that is smart and user-friendly. ...

  9. fish 设置环境变量;fish shell 相关使用说明记录;

    最近使用 fish进行工作,发现环境变量忘记如何设置: fish 环境变量保存在两个地方: ~ 目录下,.config/fish 目录下: /etc/fish/ 目录下 如果配置所有用户都能用的环境变 ...

随机推荐

  1. $_FILES详解

    <form enctype="multipart/form-data" action="upload.php" method="post&quo ...

  2. SQL Server--获取磁盘空间使用情况

    对于DBA来说,监控磁盘使用情况是必要的工作,然后没有比较简单的方法能获取到磁盘空间使用率信息,下面总结下这些年攒下的脚本: 最常用的查看磁盘剩余空间,这个属于DBA入门必记的东西: -- 查看磁盘可 ...

  3. iOS开发之Segue

    Storyboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象(简称Segue). 每一个Segue对象,都有3个属性: (1)唯一标识 @property (nonat ...

  4. 批量安装python库函数---pip

    废话少说,要的就是干货 pip install -r 文件名 注意如果输入文件名报错,建议使用文件的绝对路径. 作者:marsggbo

  5. Angular2开发拙见——组件规划篇

    本文集中讲讲笔者目前使用ng2来开发项目时对其组件的使用的个人的一些拙劣的经验. 先简单讲讲从ng1到ng2框架下组件的职责与地位: ng1中的一大特色--指令,分为属性型.标签型.css类型和注释型 ...

  6. centos下美团sql优化工具SQLAdvisor的安装

    1.克隆代码 cd /usr/local/src/git clone https://github.com/Meituan-Dianping/SQLAdvisor.git 2.安装依赖(ubuntu下 ...

  7. node.js平台下,利用cookie实现记住密码登陆(Express+Ejs+Mysql)

    本博文需有node.js+express+mysql入门基础,若基础薄弱,可参考博主的其他几篇node.就是博文: 1.下载Mysql数据库,安装并配置 创建用户表供登录使用: 2.node.js平台 ...

  8. js复制内容到剪切板,兼容pc和手机端,支持Safari浏览器

      最近,一些项目中用到监听用户复制.剪切的操作. 案例1.在PC端,当用户获得一个京东卡的使用券,当用户使用ctrl + C复制得到的使用券时,将使用券的代号复制到粘贴板,以便于用户ctrl+v进行 ...

  9. iOS 关于js与OC相互调用的那些事

    最近项目上使用js调用OC,OC再次调用JS,再次在JS页面上面回显数据. 项目中使用的是WKWebview,加载网路的URL,其实就是使用WK加载出来的H5网页,在项目中用的是H5网页有个识别按钮, ...

  10. JDK动态代理实现机制

    =========================================== 原文链接: JDK动态代理实现机制   转载请注明出处! =========================== ...