GNU/Linux >> Linux の 問題 >  >> Linux

McFly –「Ctrl+R」Bash履歴検索機能の代替

あなたのほとんどは間違いなく逆検索について使用または聞いたことがある BASHで機能します。 Bashで逆検索を行うためのキーボードショートカットはCtrl+ rです。 。 bash逆検索を使用すると、毎回再入力しなくても、以前に実行したすべてのコマンドを表示できます。もちろん、上/下矢印を使用してbashの履歴を検索することもできます。ただし、Ctrl + rを押すと、このプロセスがはるかに簡単かつ高速になります。今日、私は「Ctrl+r」Bash履歴検索機能に代わるものに出くわしました。 「McFly」に会う 、 Rustで書かれたシンプルなツール デフォルトのCtrl+rBash履歴検索をインテリジェントな検索エンジンに置き換えるプログラミング言語。 McFlyによるすべてのコマンド提案は、小さなニューラルネットワークを使用してリアルタイムで優先されます。 。

McFlyは、Ctrl + r機能を再バインドして、Bash履歴から最近実行されたすべてのコマンドを表示します。以下を追跡することにより、シェルの履歴を補強します。

  • コマンドの終了ステータス
  • タイムスタンプ(コマンドを実行するとき)、
  • および実行ディレクトリ(コマンドを実行する場所)。

すべての追跡の詳細をSQLiteデータベースに保存します。コマンドの履歴終了ステータスを追跡するため、失敗した古いコマンドを単に無視できます。

コマンドを提案するとき、McFlyは次の事実を考慮します:

  • コマンドを実行したディレクトリ。将来、同じディレクトリでそのコマンドを繰り返す可能性があります。
  • コマンドの前に入力したコマンド。
  • コマンドを実行する頻度。
  • 最後にコマンドを実行したとき。
  • 以前にMcFlyでコマンドを選択したことがある場合。
  • コマンドの履歴終了ステータス。なぜなら、失敗した古いコマンドを実行したくないのではないでしょうか?

McFlyはデフォルトのBash履歴ファイルを維持しているため、いつでもMcFlyの使用を停止できます。 McFlyはBASHだけでなく、他のシェルにも拡張可能です。

LinuxにMcFlyをインストールする

McFlyは、LinuxでLinuxbrewを使用してインストールできます。 Linuxbrewをまだインストールしていない場合は、次のリンクを参照してください。

  • Linuxbrew –LinuxおよびMacOSX用の一般的なパッケージマネージャー

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の使用を開始する前に、もう1つの手順を実行する必要があります。

〜/ .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を使用してbashの履歴を検索する

コマンド履歴を検索するには、「mcfly search」に続けてコマンド名の一部を入力し、Enterキーを押します。 Mcflyは、入力した検索クエリに基づいてコマンド候補を表示します。

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

たとえば、次のコマンドを入力します。

$ mcfly search mk

これが私のUbuntuマシンからの出力例です:

McFlyを使用してbashの履歴を検索する

ご覧のとおり、「mkdir」コマンドを2回使用しました。提案のリストからコマンドを実行する場合は、 UP / DOWNを使用するだけです。 矢印で選択し、Enterキーを押してすぐに実行します。コマンドを編集する場合は、コマンドを選択して TABを押します。 キーを押してターミナルに戻し、実行する前に編集します。選択したコマンドを履歴から削除するには、 F2を押すだけです。 。

または、次のコマンドを入力して履歴検索を開き、任意のコマンドまたはコマンドの一部を入力して、履歴からの提案を表示します。

$ mcfly search

入力すると、McFlyにコマンドの候補が表示されます。

これがMcFlyの短いビデオデモンストレーションです:

マクフライの活動

ヘルプを見る:

$ mcfly --help

推奨される読み物:

  • HSTR –コマンドライン履歴を簡単に表示、ナビゲート、検索、管理できます
  • Pick –Linux用のコマンドラインあいまい検索ツール
  • LinuxでBash履歴から特定のコマンドをクリアする方法

McFlyを削除

マクフライは好きじゃない、問題ない!次のコマンドを使用して削除します。

$ brew uninstall mcfly
$ brew untap cantino/mcfly

最後に、前に追加した行を〜/ .bashrcから削除します ファイル。


Linux
  1. シェルの歴史を検索する最良の方法は?

  2. Linux履歴コマンド

  3. 知っておくべき15のLinux Bash履歴拡張の例

  1. bash で履歴の編集を無効にする方法

  2. bash履歴の検索位置をリセット

  3. 履歴に保存せずに bash でコマンドを実行する

  1. コマンドラインでの毎日のBashのヒント

  2. LinuxでBASHコマンドライン履歴をクリアする方法

  3. LinuxでBashの履歴から特定のコマンドをクリアする方法