GNU/Linux >> Tutoriels Linux >  >> Linux

McFly - Un remplacement de la fonction de recherche d'historique Bash 'Ctrl + R'

La plupart d'entre vous ont certainement utilisé ou entendu parler de la recherche inversée fonction dans BASH. Le raccourci clavier pour effectuer une recherche inversée dans Bash est Ctrl+r . En utilisant la recherche inversée bash, nous pouvons afficher toutes les commandes que nous avons précédemment exécutées sans avoir à les retaper à chaque fois. Vous pouvez, bien sûr, utiliser les flèches HAUT/BAS pour rechercher votre historique bash. Cependant, Ctrl + r rendra ce processus beaucoup plus facile et plus rapide. Aujourd'hui, je suis tombé sur un remplacement de la fonction de recherche d'historique Bash 'Ctrl + r'. Rencontrez "McFly" , un outil simple écrit en Rust langage de programmation qui remplace la recherche par défaut de l'historique Ctrl+r Bash par un moteur de recherche intelligent. Toutes les suggestions de commande faites par McFly sont priorisées en temps réel avec un petit réseau de neurones .

McFly relie la fonctionnalité Ctrl + r pour afficher toutes les commandes récemment exécutées à partir de votre historique Bash. Il augmente l'historique de votre shell en suivant les éléments suivants :

  • État de sortie de la commande,
  • horodatage (lorsque vous exécutez la commande),
  • et le répertoire d'exécution (où vous exécutez la commande).

Il enregistre tous les détails de suivi dans une base de données SQLite. Puisqu'il suit l'état de sortie historique de la commande, vous pouvez simplement ignorer les anciennes commandes ayant échoué.

Lors de la suggestion d'une commande, McFly prend en compte les faits suivants :

  • Sur quel répertoire vous avez exécuté la commande. Vous risquez de répéter cette commande dans le même répertoire à l'avenir.
  • Quelles commandes vous avez saisies avant la commande.
  • La fréquence à laquelle vous exécutez la commande.
  • La dernière fois que vous avez exécuté la commande.
  • Si vous avez déjà sélectionné la commande dans McFly.
  • L'état de sortie historique de la commande. Parce que vous ne voulez probablement pas exécuter d'anciennes commandes ayant échoué, n'est-ce pas ?

McFly conserve votre fichier d'historique Bash par défaut, vous pouvez donc arrêter d'utiliser McFly à tout moment. McFly n'est pas seulement pour BASH, il est également extensible pour d'autres shells.

Installer McFly sous Linux

McFly peut être installé en utilisant Linuxbrew sur Linux. Si vous n'avez pas encore installé Linuxbrew, consultez le lien suivant.

  • Linuxbrew :un gestionnaire de packages commun pour Linux et Mac OS X

Une fois Linuxbrew installé, exécutez les commandes suivantes pour installer McFly :

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

Une fois l'installation terminée, vous verrez la sortie suivante.

==> 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

Installer mcfly sous Linux

Comme vous pouvez le constater, nous devons effectuer une étape supplémentaire avant de commencer à utiliser McFly.

Ajoutez les lignes suivantes à votre ~/.bashrc fichier :

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

Enfin, exécutez la commande suivante pour appliquer les modifications :

$ source ~/.bashrc

Votre historique BASH sera importé dans la base de données McFly lorsque vous exécuterez cette commande pour la première fois. Cela prendra quelques instants en fonction de la taille de votre fichier d'historique bash. Une fois l'importation terminée, vous verrez le message suivant.

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

Vous pouvez maintenant commencer à utiliser McFly.

Recherche dans l'historique bash à l'aide de McFly

Pour rechercher dans l'historique de vos commandes, tapez simplement "mcfly search" suivi de la partie du nom de la commande et appuyez sur la touche ENTRÉE. Mcfly affichera les suggestions de commande en fonction de la requête de recherche que vous venez de taper.

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

Par exemple, je tape la commande suivante :

$ mcfly search mk

Voici l'exemple de sortie de ma machine Ubuntu :

Rechercher dans l'historique bash à l'aide de McFly

Comme vous pouvez le voir, j'ai utilisé la commande 'mkdir' deux fois. Si vous souhaitez exécuter une commande à partir de la liste des suggestions, utilisez simplement UP/DOWN flèches pour le sélectionner et appuyez sur ENTER pour l'exécuter immédiatement. Si vous souhaitez modifier une commande, choisissez-la et appuyez sur TAB clé pour le ramener à votre terminal, puis modifiez-le avant de l'exécuter. Pour supprimer la commande sélectionnée de l'historique, appuyez simplement sur F2 .

Vous pouvez également saisir la commande suivante pour ouvrir la recherche d'historique, puis saisir n'importe quelle commande ou partie de la commande pour afficher les suggestions de votre historique.

$ mcfly search

McFly affichera les suggestions de commande au fur et à mesure que vous tapez.

Voici une courte démonstration vidéo de McFly :

McFly en action

Afficher l'aide :

$ mcfly --help

Suggestion de lecture :

  • HSTR :affichez, naviguez, recherchez et gérez facilement votre historique de ligne de commande
  • Pick – Un outil de recherche floue en ligne de commande pour Linux
  • Comment effacer une commande spécifique de l'historique de Bash sous Linux

Supprimer McFly

Vous n'aimez pas McFly, pas de problème ! Supprimez-le à l'aide des commandes suivantes :

$ brew uninstall mcfly
$ brew untap cantino/mcfly

Enfin, supprimez les lignes que nous avons ajoutées précédemment de ~/.bashrc fichier.


Linux
  1. Astuces Bash pour tous les jours en ligne de commande

  2. Comment effacer l'historique de la ligne de commande BASH sous Linux

  3. Comment effacer l'historique de Bash sous Linux

  4. Comment effacer une commande spécifique de l'historique Bash sous Linux

  5. Comment faire en sorte que la saisie anticipée s'applique à la recherche dans l'historique de Bash (ctrl-r) ?

Commande d'attente bash

Commande d'historique sous Linux (historique de bash)

Commande Bash printf

Comment afficher l'historique de Bash sans numéros de ligne

Comment activer l'horodatage dans l'historique de Bash sous Linux

Utilisation de la fonctionnalité d'historique sur Bash Shell sur le serveur Ubuntu 16.04 LTS