McFly:利用神经网络为 Bash 提供历史命令搜索功能
创始人
2024-03-02 01:39:29
0

假如你在命令行模式下渡过了很长时间,那么你必定使用过或者听说过 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:

$ brew tap cantino/mcfly https://github.com/cantino/mcfly

$ brew install mcfly

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

==> Installing mcfly from cantino/mcfly
==> Downloading https://github.com/cantino/mcfly/releases/download/v0.2.5/mcfly-v0
==> Downloading from https://github-production-release-asset-2e65be.s3.amazonaws.c
######################################################################## 100.0%
==> ONE MORE STEP! Edit ~/.bashrc and add the following:

if [ -f $(brew --prefix)/opt/mcfly/mcfly.bash ]; then
. $(brew --prefix)/opt/mcfly/mcfly.bash
fi
/home/linuxbrew/.linuxbrew/Cellar/mcfly/v0.2.5: 4 files, 3.5MB, built in 33 seconds

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

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

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

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

$ source ~/.bashrc

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

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

现在你就可以使用 McFly 了。

使用方法

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

$ mcfly search 

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

$ mcfly search mk

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

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

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

$ mcfly search

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

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

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

$ mcfly --help

移除 McFly

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

$ brew uninstall mcfly

$ 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中国 荣誉推出

相关内容

在 Linux 上调整命令...
在 Linux 系统上,bash shell 的 history ...
2024-03-02 05:47:59
这些技巧让 Bash 命令...
告诉 Bash 你想要它记住什么,甚至删除不需要的记录重写历史。运...
2024-03-02 05:19:59
McFly:利用神经网络为...
假如你在命令行模式下渡过了很长时间,那么你必定使用过或者听说过 B...
2024-03-02 01:39:29

热门资讯

PHP最佳实践(译) 简介PHP是一门复杂的语言,经过多年折腾,使其不同版本之间高度不一致,有时还有些bug。 每个版本都...
值得收藏的 27 个机器学习的... 机器学习 ( Machine Learning ) 有很多方面,当我开始研究学习它时,我发现了各种各...
为什么计量 IT 的生产力如此... 在某些行业里,人们可以根据一些测量标准判定一个人的生产力。比如,如果你是一个零件制造商,可以通过一个...
硬核观察 #885 苹果 AR... 苹果 AR 眼镜被无限期推迟据报道,由于技术上的挑战,苹果公司已经无限期推迟了其轻型增强现实(AR)...
8个有趣的Linux提示与技巧... 我们时不时给你带来关于Linux的提示与技巧。和这个系列保持一致,这里有8个我们从读者收到最有趣的提...
8 个提升你的隐私防护的开源密... 使用一些顶级开源密码管理器,确保你的登录凭证安全无虞。密码管理器是一项非常有用的实用程序。在你想寻找...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
KDE4.11 Beta1 正...   KDE 项目工作组刚刚发布了 KDE Software Compilation 4.11 Bet...