Linux.中国 - 开源社区

 找回密码
 骑士注册

QQ登录

微博登录


宇宙第一 shell —— fish 入门

2015-12-8 11:03    评论: 18 收藏: 7    

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

安装以及配置

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):

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

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

优势

语法高亮

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

 

通配符

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

 

智能建议

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

 

Tab补全

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

 

变量

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

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

set PATH $PATH /home/mountain/shell

 

Exports

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

 

 

列表

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

 

命令替换

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

 

语法糖

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

总结

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

发表评论


最新评论

我也要发表评论

朩ダo○ [Firefox 42.0|Windows 7] 2015-12-13 10:50
看了下,发现输入fish_config命令启动web配置界面这个功能真心不错,希望其它的Linux程序也都能有一个这样的功能,而且最好启动web配置界面的命令也都格式化为[app名字]_config,这样更易用也更友好,当然直接编辑配置文件的方式也要保留
1 回复
来自117.136.70.112的 Chrome Mobile 40.0|Android 5.1 用户 2015-12-12 12:35
啥都不说了。真要是那么牛,为嘛那么多发行版本是默认是bash?我真的跟好奇这个问题啊!
2 回复
古日亚瑟 [Firefox 42.0|Windows 10] 2015-12-10 22:03
fish确实不错,好用。
令我惊喜的是,竟然在Cygwin上也可以直接安装fish,而且运行流程。
1 回复
来自天津的 Chrome 47.0|Windows 7 用户 2015-12-10 13:40
二逼青年用Linux
2 回复
来自浙江杭州的 Chrome 47.0|Windows 10 用户 2015-12-10 09:42
bash感觉很简洁,所以没用zsh
回复
jinga50334 [Chrome 47.0|GNU/Linux] 2015-12-10 09:26
搞半天竟然把生产环境的shell变了,佩服啊。
1 回复
TimePower [Chrome 47.0|GNU/Linux] 2015-12-9 18:06
宇宙第一这是想打圣战啊哈哈~
6 回复
jingwang [Chrome 47.0|Windows 10] 2015-12-9 16:56
find  的图没了   搞毛啊
回复
来自上海的 Firefox 42.0|Fedora 用户 2015-12-9 12:23
事实上真正的脑残时文艺青年,中国特色脑残,脑残得有理由据。
7 回复
丶Nature [Chrome 42.0|Windows XP] 2015-12-9 09:54
-_-!用ksh的怎么算
1 回复
linux [Chrome 46.0|Mac 10.11] 2015-12-9 07:53
1
来自北京的 Chrome 34.0|Windows 7 用户 发表于 2015-12-8 15:46 的评论:
然而并没有说一个能说服我换掉bash或者zsh的理由啊
哈哈,昨天群里面已经发现两个老 zsher 叛变投降了。。。
1 回复
linux [Chrome 46.0|Mac 10.11] 2015-12-9 07:53
1
Sephiroth [Firefox 42.0|Ubuntu] 发表于 2015-12-8 12:53 的评论:
经常看到吧主去简书网的IT区“偷”文章过来,233333。
2
linux [Chrome 46.0|Mac 10.11] 发表于 2015-12-8 17:41 的评论:
欢迎你也嗅一些过来——当然,转载前要和原作者取得同意哦。
3
Sephiroth [Firefox 42.0|Ubuntu] 发表于 2015-12-8 19:26 的评论:
我近期在看一本国外的linux杂志,如果有时间明年我会申请加入你们的翻译组,看能不能帮忙翻译一些国外linux杂志上的好文章过来。
非常期待
回复
Sephiroth [Firefox 42.0|Ubuntu] 2015-12-8 19:26
1
Sephiroth [Firefox 42.0|Ubuntu] 发表于 2015-12-8 12:53 的评论:
经常看到吧主去简书网的IT区“偷”文章过来,233333。
2
linux [Chrome 46.0|Mac 10.11] 发表于 2015-12-8 17:41 的评论:
欢迎你也嗅一些过来——当然,转载前要和原作者取得同意哦。
我近期在看一本国外的linux杂志,如果有时间明年我会申请加入你们的翻译组,看能不能帮忙翻译一些国外linux杂志上的好文章过来。
6 回复
西风冷香 [Firefox 42.0|GNU/Linux] 2015-12-8 18:08
曾经用过一段时间,感觉太花哨了,于是又换回了zsh
1 回复
linux [Chrome 46.0|Mac 10.11] 2015-12-8 17:41
1
Sephiroth [Firefox 42.0|Ubuntu] 发表于 2015-12-8 12:53 的评论:
经常看到吧主去简书网的IT区“偷”文章过来,233333。
欢迎你也嗅一些过来——当然,转载前要和原作者取得同意哦。
回复
来自北京的 Chrome 34.0|Windows 7 用户 2015-12-8 15:46
然而并没有说一个能说服我换掉bash或者zsh的理由啊
2 回复
Sephiroth [Firefox 42.0|Ubuntu] 2015-12-8 12:53
经常看到吧主去简书网的IT区“偷”文章过来,233333。
回复
LouisWei [Firefox 31.0|GNU/Linux] 2015-12-8 11:18
并不怎么喜欢
1 回复

热点评论

来自上海的 Firefox 42.0|Fedora 用户 2015-12-9 12:23
事实上真正的脑残时文艺青年,中国特色脑残,脑残得有理由据。
7
TimePower [Chrome 47.0|GNU/Linux] 2015-12-9 18:06
宇宙第一这是想打圣战啊哈哈~
6
Sephiroth [Firefox 42.0|Ubuntu] 2015-12-8 19:26
我近期在看一本国外的linux杂志,如果有时间明年我会申请加入你们的翻译组,看能不能帮忙翻译一些国外linux杂志上的好文章过来。
6
来自117.136.70.112的 Chrome Mobile 40.0|Android 5.1 用户 2015-12-12 12:35
啥都不说了。真要是那么牛,为嘛那么多发行版本是默认是bash?我真的跟好奇这个问题啊!
2
来自天津的 Chrome 47.0|Windows 7 用户 2015-12-10 13:40
二逼青年用Linux
2
返回顶部

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。