McFly-替换“ Ctrl + R” Bash历史记录搜索功能

时间:2020-03-21 11:46:17  来源:igfitidea点击:

如果我们在CLI模式下花费大量时间,则绝对应该使用或者听说过BASH中的反向搜索功能。
在Bash中进行反向搜索的键盘快捷键是Ctrl + r。
使用bash反向搜索,我们可以调出先前使用的所有命令,而不必每次都重新键入它们。
当然,我们可以使用UP/DOWN箭头来搜索bash历史记录。
但是,Ctrl + r将使此过程变得更加轻松和快捷。
今天,我偶然发现了“ Ctrl + r” Bash历史记录搜索功能的替代品。
认识“ McFly”,这是一种用Rust编程语言编写的简单工具,它用智能搜索引擎替换了默认的Ctrl + r Bash历史记录搜索。
麦克弗利(McFly)提出的所有命令建议都通过一个小型神经网络实时进行优先排序。

McFly重新绑定了Ctrl + r功能,以显示Bash历史记录中所有最近执行的命令。
它通过跟踪以下内容来增加Shell历史记录:

  • 命令退出状态,
  • 时间戳(运行命令时),
  • 和执行目录(运行命令的位置)。

它将所有跟踪详细信息保存在SQLite数据库中。
由于它跟踪命令的历史退出状态,因此我们可以简单地忽略旧的失败命令。
很好,是吗?

在建议命令时,McFly考虑以下事实:

  • 我们在哪个目录上运行了命令。将来我们可能会在同一目录中重复该命令。
  • 我们在命令之前键入了什么命令。
  • 我们多久运行一次命令。
  • 上次运行命令时。
  • 如果我们之前在McFly中选择了该命令。
  • 命令的历史退出状态。因为,我们可能不想运行旧的失败命令,对吗?

McFly会维护默认Bash历史记录文件,因此我们可以随时停止使用McFly。
McFly不仅用于BASH,还可以扩展到其他shell。

安装McFly

可以在Linux上使用Linuxbrew安装McFly。
如果尚未安装Linuxbrew,请参考以下链接。

  • Linuxbrew – Linux和Mac OS X的通用软件包管理器

一旦安装了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