McFly – ‘Ctrl+R’ Bash 历史搜索功能的替代品

你们中的大多数人肯定使用过或听说过 反向搜索 BASH 中的函数。 在 Bash 中进行反向搜索的键盘快捷键是 Ctrl+r. 使用 bash 反向搜索,我们可以调出之前执行的所有命令,而无需每次都重新键入它们。 当然,您可以使用向上/向下箭头搜索您的 bash 历史。 但是,Ctrl+r 将使这个过程更容易和更快。 今天,我偶然发现了 ‘Ctrl+r’ Bash 历史搜索功能的替代品。 见面 “麦克弗莱”一个简单的工具写在 用智能搜索引擎替换默认的 Ctrl+r Bash 历史搜索的编程语言。 McFly 提出的所有命令建议都是实时优先级的 神经网络.

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

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

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

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

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

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

在 Linux 中安装 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
? /home/linuxbrew/.linuxbrew/Cellar/mcfly/v0.2.5: 4 files, 3.5MB, built in 33 seconds

在 Linux 中安装 mcfly

如您所见,在开始使用 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。

搜索 bash 使用 McFly 的历史

要搜索您的命令历史记录,只需键入“mcfly search”,后跟命令名称的一部分,然后按 ENTER 键。 Mcfly 将根据您刚刚输入的搜索查询显示命令建议。

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

例如,我键入以下命令:

$ mcfly search mk

这是我的 Ubuntu 机器的示例输出:

搜索 bash 使用 McFly 的历史

如您所见,我已经使用了两次“mkdir”命令。 如果要从建议列表中运行命令,只需使用 上/下 箭头选择它并按 ENTER 立即运行它。 如果要编辑命令,请选择它并点击 标签 键将其带回您的终端,然后在运行之前进行编辑。 要从历史记录中删除选定的命令,只需按 F2.

或者,键入以下命令以打开历史搜索,然后键入任何命令或命令的一部分以查看历史记录中的建议。

$ mcfly search

McFly 将在您键入时显示命令建议。

这是 McFly 的简短视频演示:

mcfly 演示

麦克弗利在行动

查看帮助:

$ mcfly --help

建议阅读:

  • HSTR – 轻松查看、导航、搜索和管理您的命令行历史
  • Pick – Linux 的命令行模糊搜索工具
  • 如何在 Linux 中从 Bash 历史记录中清除特定命令

删除 McFly

不喜欢 McFly,没问题! 使用以下命令将其删除:

$ brew uninstall mcfly
$ brew untap cantino/mcfly

最后,删除我们之前添加的行 ~/.bashrc 文件。

资源:

感谢您的光临!

帮助我们帮助您:

祝你有美好的一天!!