Comment rechercher dans mon histoire Zsh

Comment rechercher dans mon histoire Zsh

La plupart d'entre nous passent notre temps dans le terminal, exécutant des commandes, configurant des serveurs, en développant des outils, et plus. Dans certains cas, nous nous retrouvons à exécuter des commandes similaires.

Bien que vous puissiez créer des scripts pour automatiser ces tâches, les commandes peuvent parfois varier légèrement. Si un tel scénario se produit, l'historique des commandes est la meilleure voie à suivre.

Histoire du ZSH

Zsh est une coque populaire construite sur le dessus de Bash. Il stocke votre historique de commandement dans le .Fichier ZSH_HISTORY dans votre répertoire domestique.

Si votre shell Zsh ne prend pas en charge l'historique des commandes par défaut, consultez notre article de l'historique des commandes ZSH pour savoir comment l'activer.

Le nombre total de commandes que la commande Zsh peut stocker dans le fichier d'historique dépend de la variable $ SaveHist.

Comment utiliser l'historique des commandes ZSH

Maintenant que nous savons que le shell Zsh enregistre vos commandes dans un fichier, identifions comment nous pouvons l'utiliser pour faciliter notre utilisation terminale.

Pour afficher toutes les commandes stockées dans votre fichier d'historique Zsh, utilisez la commande d'historique.

Si vous exécutez la commande historique sans arguments, Zsh affichera toutes les commandes stockées dans le fichier d'historique:

histoire

Vous trouverez ci-dessous un exemple de sortie:

38 ECHO $ ​​HISTFILE
39 Zsh

53 HISTOIRE
54 env
55 chat .zshrc

Dans la plupart des cas, la commande historique affichera une liste étendue de toutes vos commandes exécutées. Vous pouvez tuer la sortie vers des commandes telles que Grep pour rechercher une commande spécifique ou moins pour y parcourir facilement.

HISTOIRE | echo grep

Ou moins:

HISTOIRE | moins

La commande d'histoire prend également en charge la notation numérique. Par exemple, pour afficher les n commandes N dans le fichier d'historique, utilisez le -n où n est le nombre de commandes à afficher.

Par exemple, pour afficher les 5 dernières commandes, nous pouvons faire:

Histoire -5

Pour afficher à partir de la nième commande, utilisez le + n.

Par exemple, pour afficher l'histoire de la 10e commande à la dernière, utilisez la commande comme:

Historique +10

Comment rechercher l'historique des commandes Zsh

Bien que la commande d'historique puisse être utile pour afficher tous vos histoires de commande, elle n'est pas très utile lorsque vous souhaitez réécrire une commande précédente.

Concentrons-nous maintenant sur la façon dont nous pouvons rechercher l'historique des commandes et redémarrer une commande précédente.

Flèche de haut en bas

La façon la plus courante de rechercher dans l'historique des commandes est d'utiliser les touches de flèche de haut en bas.

La flèche vers le haut défilera dans votre historique de commandement du dernier au plus tôt. Une fois que vous avez trouvé la commande que vous souhaitez réexaminer, appuyez sur retour pour l'exécuter.

Claquer (!) format

Une autre façon de rechercher dans votre historique de commandement est d'utiliser l'exclamation (!) marquer. Si vous tapez le double bang (!!), il exécutera la commande la plus précédente:

!!

Le cas d'utilisation le plus courant pour ce format est lorsque vous oubliez d'exécuter une commande en tant que sudo. Par exemple, si vous exécutez la commande APT comme:

mise à jour apte

Vous pouvez ré-cours la commande en tant que sudo à l'aide de la syntaxe:

Sudo !!

Ce qui précède révisera la commande APT en tant que sudo.

Si vous courez !n-where n est le nombre de commandes dans l'historique des commandes - vous pouvez exécuter une commande spécifique dans le fichier historique.

Par exemple, pour exécuter la 12ème commande dans l'historique des commandes, vous pouvez faire:

!12

Si vous ne vous souvenez pas du numéro de la commande que vous souhaitez exécuter, vous pouvez utiliser le !format de mot pour exécuter la commande en commençant par le mot spécifié.

Par exemple, pour exécuter la commande en commençant par le mot impridenv:

!imprimer

La commande ci-dessus exécutera la commande la plus récente qui correspond au mot spécifié.

Recherche récursive

Une autre façon courante de rechercher l'historique de votre commande est la recherche récursive. Pour l'utiliser, appuyez sur Ctrl + R dans votre session terminale. Cela modifiera votre session de terminal en mode de recherche, et vous pouvez taper pour les commandes précédentes.

bck-i-search: _

Lorsque vous tapez, le shell recherchera une commande correspondante dans l'histoire et le suggèrera. Pour rechercher la prochaine suggestion d'appariement, appuyez sur Ctrl + R.

Une fois que vous avez trouvé une commande correspondante, appuyez sur retour pour l'exécuter.

invite primitenv
bck-i-search: print_

Modification du comportement d'histoire de Zsh

Bien que nous n'aurons pas sur tous les ajustements que vous pouvez effectuer pour améliorer l'historique des commandes ZSH, les éléments suivants sont utiles à savoir.

Pour effacer l'historique de votre commande, utilisez la commande:

HISTOIRE -C

Ce qui précède vous donnera une sortie indiquant que le fichier d'historique a été nettoyé.

Fichier d'historique supprimé.

Une autre modification que nous pouvons faire est à la variable $ HistControl. Vérifiez la documentation ZSH pour en savoir plus à ce sujet. Cependant, nous pouvons dire à ZSH d'éviter d'enregistrer les commandes en double en ajoutant la variable comme:

Export HistControl = ignoré

Conclusion

Ce tutoriel a expliqué comment travailler avec et utiliser l'historique des commandes ZSH pour améliorer votre expérience terminale. Nous avons couvert comment rechercher l'historique des commandes.

Merci pour la lecture!