GNU/Linux >> Tutoriels Linux >  >> Linux

Mettre la commande d'historique sur la ligne de commande sans l'exécuter ?

J'utilise !n où (n) est le numéro de ligne pour exécuter une ligne dans le fichier historique que je veux exécuter à l'invite de commande que je trouve via history|less.

Mais il y a un événement d'historique de ligne de commande que je souhaite modifier manuellement. Comment puis-je insérer dans la ligne de commande un contenu d'événements d'historique sans qu'il ne s'exécute réellement afin que je puisse modifier puis appuyer sur retour ?

Cordialement,

Réponse acceptée :

Pour demander que la commande soit imprimée plutôt qu'exécutée après la substitution de l'historique, ajoutez le :p modificateur, par ex. !42:p . La commande résultante sera également entrée dans l'historique, vous pouvez donc appuyer sur Haut pour le modifier.

Si vous avez le histverify jeu d'options (shopt -s histverify ), vous aurez toujours la possibilité de modifier le résultat des substitutions d'historique.

Le fc builtin donne un accès limité à l'expansion de l'historique (pas de désignateurs de mots) et vous permet de modifier une commande précédente dans un éditeur externe.

Vous pouvez utiliser !prefix pour faire référence à la dernière commande commençant par prefix , et !?substring pour faire référence à la dernière commande commençant par substring . Lorsque vous savez ce que vous recherchez, cela peut vous faire gagner beaucoup de temps sur history | less .

Une autre façon de rechercher dans l'historique précédent est la recherche incrémentielle :appuyez sur Ctrl +R et commencez à entrer une sous-chaîne de ce que vous recherchez. Appuyez sur Ctrl +R pour aller à l'occurrence précédente de la chaîne de recherche jusqu'à présent et Ctrl +S si vous êtes allé trop loin. La plupart des touches autres que Ctrl +R , Ctrl +S , Retour arrière et les caractères ordinaires terminent la recherche incrémentielle et ont leur effet habituel (par exemple, les touches fléchées pour déplacer le curseur dans la ligne que vous avez atteinte, Entrée pour exécuter la commande).


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 exécuter une commande dans Shell sans l'enregistrer dans l'historique ? [Astuces Linux]

  4. 15 exemples pour maîtriser l'historique de la ligne de commande Linux

  5. Historique bash sans numéro de ligne

Commande d'historique sous Linux (historique de bash)

Commande Diff sous Linux

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

11 guides de ligne de commande Linux dont vous ne devriez pas vous passer

Le hack de ligne de commande de l'historique Linux préféré d'un administrateur système

Commande d'historique avec exemples