你们中的大多数人肯定使用过或听说过 反向搜索 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
如您所见,在开始使用 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 机器的示例输出: