McFly:利用神经网络为 Bash 提供历史命令搜索功能

2020-09-15 0 419 百度已收录

假如你在命令模式下过了长时间,那么你必定使用过或者听说过 BASH 的 反向搜索 功能,在 Bash 中执行反向搜索功能的快捷键Ctrl+r。通过使用这个特性,我们可以找到我们执行过的命令而无需再次输入它们。当然,你可以使用上下键来搜索你的 bash 命令记录,但使用 Ctrl+r 快捷键可以让这个搜索过程简单快速。今天我找寻到了 Bash 历史命令搜索特性 Ctrl+r 的一个替代品,它就是 McFly。McFly 是一个使用 Rust 编程语言写就的简洁工具自带一个智能的搜索引擎,用来替换默认的 Ctrl+r 这个 Bash 历史命令搜索功能。 McFly 提供的命令建议都是通过一个小巧的 神经网络 来实时排序给出的。

McFly 重新绑定Ctrl+r 快捷键,可以从你的 Bash 历史命令中找到所有最近执行过的命令。它通过追溯下面的信息来增强你的 shell 历史命令搜索特性:

它将所有追溯的信息保存在一个 SQLite 数据库中。由于它追溯了命令的历史结束状态,所以你可以很轻易地忽略掉失败的命令。听起来很酷,对吧?

在给出一个命令建议时,它将考虑如下因素

  • 你在哪个目录执行的这个命令,将来你很有可能在相同的目录重复这个命令
  • 在你执行这个命令之前,执行过什么命令
  • 你执行这个命令有多频繁
  • 你最后执行该命令的时间
  • 你是否在 McFly 中选择过这个命令
  • 以及这个命令的历史结束状态。因为你很有可能不会去执行失败过的命令,对吧?

McFly 维护着你的默认 Bash 历史文件,所以你可以随时停止使用它。McFly 也并不只服务于 BASH, 它也可以扩展到其他 shell 程序

安装 McFly

在 Linux 中,McFly 可以使用 Linuxbrew 来安装。如若你还没有安装过 Linuxbrew,那么你可以参考下面的这个链接。(LCTT 译注:从其 GitHub 主页了解到也可以下载其二进制来使用。)

一旦安装好了 Linuxbrew,运行下面的命令来安装 McFly:

  1. $ brew tap cantino/mcfly https://github.com/cantino/mcfly
  2. $ brew install mcfly

在安装完成后,你将看到下面的输出:

  1. ==>Installing mcfly from cantino/mcfly
  2. ==>Downloading https://github.com/cantino/mcfly/releases/download/v0.2.5/mcfly-v0
  3. ==>Downloadingfrom https://github-production-release-asset-2e65be.s3.amazonaws.c
  4. ######################################################################## 100.0%
  5. ==> ONE MORE STEP!Edit~/.bashrc and add the following:
  6. if[-f $(brew --prefix)/opt/mcfly/mcfly.bash];then
  7. . $(brew --prefix)/opt/mcfly/mcfly.bash
  8. fi
  9. /home/linuxbrew/.linuxbrew/Cellar/mcfly/v0.2.5:4 files,3.5MB, built in33 seconds

McFly:利用神经网络为 Bash 提供历史命令搜索功能

正如你上面看到的那样,在使用 McFly 之前我们需要再做一些配置。

将下面几行添加到你的 ~/.bashrc 文件中:

  1. if[-f $(brew --prefix)/opt/mcfly/mcfly.bash];then
  2. . $(brew --prefix)/opt/mcfly/mcfly.bash
  3. fi

最后,再运行下面的命令来让更改生效。

  1. $ source ~/.bashrc

当你第一次执行上面的这个命令时,你的 BASH 历史将会被导入 McFly 的数据库。依据你的 bash 历史文件的大小,这个过程将花费一些时间。一旦导入完成,你讲看到下面的提示信息。

  1. McFly:ImportingBash history for the first time.This may take a minute or two...done.

现在你就可以使用 McFly 了。

使用方法

要在你的命令历史中执行搜索,只需要键入 mcfly search 再加上命令名的一部分,最后敲击回车键即可。Mcfly 将会基于你刚才键入的搜索查询语句给出命令建议。

  1. $ mcfly search <part-of-the-command>

例如我键入了下面的命令:

  1. $ mcfly search mk

下面展示的是我 Ubuntu 机子上的示例输出:

McFly:利用神经网络为 Bash 提供历史命令搜索功能

如你所见,我已经使用过 mkdir 这个命令两次。假如你想从这些命令建议中执行其中之一,只需使用上下键来选择它,然后敲击回车键来执行它就可以了。假如你想编辑其中一个命令,则需要先选择它,然后敲 TAB 键将这个命令放置到终端中,最后在运行它之前更改它就行了。要从历史中删除已经选择的命令,按 F2 即可。

或者,输入下面的命令来打开历史搜索,然后输入任意一个命令或者命令的一部分来从你的历史命令中查看它提供的建议。

  1. $ mcfly search

在你输入的同时, McFly 将会展示命令的提示。

下面是一个介绍 McFly 的简短演示视频

McFly:利用神经网络为 Bash 提供历史命令搜索功能

还可以使用下面的命令来查看帮助:

  1. $ mcfly --help

移除 McFly

不喜欢 McFly,没问题!可以使用下面的命令来移除它:

  1. $ brew uninstall mcfly
  2. $ brew untap cantino/mcfly

最后,移除先前添加到 ~/.bashrc 文件中的几行命令。

好了,这些就是所有了,更多精彩内容敬请期待,请保存关注!

干杯!


via: https://www.ostechnix.com/mcfly-a-replacement-to-ctrlr-bash-history-search-feature/

作者:SK 选题:lujun9972 译者:FSSlc 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

栗子博客 软件 McFly:利用神经网络为 Bash 提供历史命令搜索功能 https://www.lizi.tw/soft/13050.html

常见问题
  • 1、杰齐1.7仅适用于PHP5.2 2、需Zend支持 3、尽量使用宝塔面板 4、尽量使用Windows 系统,关关对Linux支持不太友好。
查看详情

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

McFly:利用神经网络为 Bash 提供历史命令搜索功能-海报

分享本文封面