CODE大全
您的位置 : 首页 > JAVA开发 >

Linux Fish shell 安装、配置、函数使用教程

发布时间:『 2018-04-27

关于 Fish shell 目前百度百科上还没有相对应的的词条,但是现实中可能已经被大家用乱了。Fish shell 被称为宇宙第一shell。

FISH(friendly interactive shell)是一个用户友好的命令行 shell,主要是用来进行交互式使用。shell 就是一个用来执行其他程序的程序。

命令行是程序员的必备技能。图形界面虽然好看,解决问题还是要靠命令行。
命令行由 Shell 提供。各种命令通过 Shell,传递给操作系统的内核。学习命令行就是在学习 Shell。

FISH(friendly interactive shell)

Shell 有好几种,目前最常用是 Bash 和 zsh。但是,在我看来,它们都不如 Fish Shell 好用。

五年前,我第一次尝试 Fish,感到很惊艳,一直用到现在。本文介绍 Fish 的主要特点,希望你也来尝试它。

Fish 简介

Fish 是"the friendly interactive shell"的简称,最大特点就是方便易用。很多其他 Shell 需要配置才有的功能,Fish 默认提供,不需要任何配置。
如果你想拥有一个方便好用的 Shell,又不想学习一大堆语法,http://www.bdx-leb.com/018f/2922cfab6165.html或者花费很多时间配置,那么你一定要尝试一下 Fish。

Linux 下的一个智能易用的 Shell

Fish 安装
http://www.bdx-leb.com/488a/cd2943212374.html

Ubuntu 和 Debian 的安装方法。

$ sudo apt-get install fish

Mac 的安装方法。

$ brew install fish

其他系统的安装请参考官方网站。

Fish 启动与帮助

安装完成后,执行 fish 命令 就可以启动 Fish。

$ fish

 

使用过程中,如果需要帮助,可以输入help命令。浏览器就会自动打开,显示在线文档。

$ help

Fish 彩色显示

进入 Fish 以后,你注意到的第一件事,可能就是它默认彩色显示。

# 无效命令为红色
$ mkd
# 有效命令为蓝http://www.bdx-leb.com/9920/f098764300dd.html色
$ mkdir

有效路径会有下划线。

$ cat ~/xttblog

上面代码表示,存在以~/xttblog开头的路径。如果没有下划线,你就知道这个路径不存在。

Fish 自动建议

Fish 会自动在光标后面给出建议,表示可能的选项,颜色为灰色。

# 命令建议
$ /bin/hostname
# 参数建议
$ grep --ignore-case
# 路径建议
$ ls node_modules

如果采纳建议,可以按下→或Control + F。如果只采纳一部分,可以按下Alt + →。

Fish 自动补全

输入命令时,Fish 会自动显示匹配的上一条历史记录。

$ git commit -m "feat: first commit"

如果没有匹配的历史记录,Fish 会猜测可能的结果,自动补全各种输入。比如,输入pyt再按下Tab,就会自动补全为python命令。

http://www.bdx-leb.com/2e8b/bf5cc9fe50ac.html

如果有多个可能的结果,Fish 会把它们都列出,还带有简要介绍。

$ vi[按下 Tab 键]
vi (Executable link, 2.7MB)
view (Vi IMproved, 一个程序员的文本编辑器)
viewer.py (Executable, 967B)
viewres  (Graphical chttp://www.bdx-leb.com/22d8/ed2a6a71842d.htmllass browser for Xt)
...and 12 more rows

这时,再按http://www.bdx-leb.com/55eb/6d12ff2ccd1a.html一次tab,就可以在这些命令之中选择。

除了补全命令,Fish 还可以补全参数。比如,ls命令的-l参数后面按下Tab键,就会显示可以连用的其他参数。

$ ls -l[按下 Tab 键]
-l1  (List one file per line)
-lA  (Show hidden except . and ..)  
-la  (Show hidden)
-lB  (Ignore files ending with ~)
...and 16 more rows```

Fish 还可以自动补全 Git 分支。

$ git checkout master

Fish 易懂的语法

Fish 的语法非常自然,一眼就能看懂。if语句。

if grep fish /etc/shells
    echo Found fish
else if grep bash /etc/shells
    echo Found bash
else
    echo Got nothing
end

switch语句。

switch (uname)
case Linux
    echo Hi Thttp://www.bdx-leb.com/4a1e/813ecfb02441.htmlux!
case Darwin
    echo Hi Hexley!
case FreeBSD NetBSD DragonFly
    echo Hi Beastie!
case '*http://www.bdx-leb.com/f700/f3c9ec527507.html'
    echo Hi, stranger!
end

while循环。

while true
    echo "Loop forever"
end

for循环。

for file in *.txt
    cp $file $file.bak
end

Fish 函数

Fish 的函数用来封装命令,或者为现有的命令起别名。

function ll
    ls -lhG $argv
end

上面代码定义了一个ll函数。命令行执行这个函数以后,就可以用ll命令替代ls -lhG。其中,变量$argv表示函数的参数。
下面是另一个例子。

function ls
    command ls -hG $argv
end

上面的代码重新定义ls命令。注意,函数体内的ls之前,要加上command,否则会因为无限循环而报错。

Fish 提示符

fish_prompt函数用于定义命令行提示符(prompt)。

function fish_http://www.bdx-leb.com/7d17/0cd261cadd5e.htmlprompt
    set_color purple
    date "+%m/%d/%y"
    set_color FF0
    echo (http://www.bdx-leb.com/ca05/33d2a142718b.htmlpwd) '>'
    set_color normal
end

执行上面的函数以后,你的命令行提示符就会变成下面这样。

02/06/13
/home/tutorial > 

Fish 配置

Fish 的配置文件是~/.config/fish/config.fish,每次 Fish 启动,就会自动加载这个文件。
我们可以在这个文件里面写入各种自定义函数,它们会被自动加载。比如,上面的fish_prompt函数就可以写在这个文件里面,这样每次启动 Fish,就会出现自定义的提示符。
Fish 还提供 Web 界面配置该文件。

$ fish_config

输入上面的命令以后,浏览器就会自动打开本机的 8000 端口,用户可以在网页上对 Fish 进行配置,比如选择提示符和配色主题。

Fish 配置

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!


——— 全文完 ———
上一篇:Linux Fish shell 特性 下一篇:没有了
Powered by 张鑫旭 | 鄂ICP备14009759号-2 | 网站留言 Copyright © 2014-2016 张鑫旭 版权所有