Rechercher dans l’historique Bash avec Ctrl+R

Alors que je passe beaucoup de temps à administrer des machines en lignes de commandes, je pense qu’il est très utile d’écrire cet article sur une fonctionnalité de BASH parfois méconnue mais indispensable à connaitre.

Cette dernière permet en effet de rechercher dans l’historique des commandes déjà exécutées dans BASH.

Autrefois, j’utilisais la flèche du haut pour afficher les commandes précédentes. J’utilisais aussi la commande history qui affiche un listing de toute les commandes BASH.

Un jour j’ai découvert (enfin on m’a montré) le raccourci clavier CTRL + r et depuis je n’utilise plus que ça !

Je vous explique, c’est très simple :

Exemple :

Dans votre terminal si vous tapez Ctrl + r, vous obtiendrez :

Ensuite tapez un mot clé correspondant à ce que vous pourriez avoir envié de rechercher dans l’historique :

Ces derniers jours, j’ai utilisé des lignes de commandes qui comportées « gcc », si je tape « gcc » il m’affiche :

Ci-dessus, on peut voir qu’il m’affiche une ligne commande entière (avec les arguments) qui contient l’expression « gcc ». Cette ligne de commande correspond à la dernière ligne de commande que j’ai tapé et qui contenait le mot clé gcc.

En appuyant une deuxième fois sur Ctrl + R, je remonte dans l’historique Bash enregistré. Il m’affiche :

Ci-dessus, il m’affiche une autre ligne de commande que j’ai tapé dernièrement et qui contient également l’expression « gcc ».

En appuyant successivement sur CTRL + r vous pouvez remonter dans l’historique des commandes.

Un autre exemple, si je tape Ctrl +r vfat, il m’affiche :

Il a trouvé la dernière commande que j’avais tapé et qui comprenait le mot clé vfat.

Si vous souhaitez sélectionner la ligne de commande qu’il vous propose, rien de plus simple, soit vous appuyez sur la touche entrée pour éxecuter la commande, soit vous l’éditer directement. Pour l’éditer, déplacer le curseur avec les flèches droite et gauche. Pour annuler appuyer sur Ctrl +c.

 

 

 

Vim et Vi Tutoriel: Comment utiliser les macros

Dans Vim les macros permettent d’enregistrer et de jouer une séquence d’actions dans l’éditeur.

A l’aide d’exemples détaillés je vais vous expliquer comment faire pour enregistrer et lancer des macros dans les éditeurs Vi et Vim.

Les étapes pour faire une macro dans Vim sont les suivantes :

  1. Démarrez l’enregistrement en appuyant sur la touche q, suivi d’un caractère minuscule afin de nommer la macro
  2. Effectuez les actions qui seront enregistrées à l’intérieur de l’éditeur Vim
  3. Stoppez l’enregistrement en appuyant sur la touche q
  4. Jouez la macro enregistrée en appuyant sur la touche @ suivi du nom de la macro
  5. Pour répéter la macro plusieurs fois, appuyer sur : NN @ ‘nom macro’. NN étant un nombre

Exemple : Génération d’une séquence de nombre à l’intérieur d’un fichier en utilisant une Macro Vim

 

1. Créez et ouvrez un fichier test.txt pour générer la séquence:

2. Passer en mode insertion et tapez « 1 . » comme ci-dessous:
Appuyer sur ‘Echap’ ‘i’ puis ‘1 .’

3. Lancer l’enregistrement et appeler la macro ‘a’
Appuyez sur ‘Echap’ ‘q’ puis ‘a’
q lance l’enregistrement
a permet de nommée la macro a

Quand vous appuierez sur q a, l’indication « recording » (ou « enregistrement ») apparaîtra en bas de l’éditeur vi.

4. Copier la première ligne sur la seconde de manière à avoir deux lignes avec « 1 . » comme ci-dessous :
Appuyez sur: ‘Echap’ ‘yy’ puis ‘p’
yy va copier la ligne courante
p va coller la ligne qui vient d’être copiée

Vim va afficher la mention « recording » (ou « enregistrement ») au bas de l’écran comme ci-dessous.

Vim affiche message enregistrement en bas

Vim affiche le message « Enregistrement » en bas

5. Incrémentez le nombre
Pressez: Control + a
Incrémentez le nombre en plaçant le curseur sur la seconde ligne et en appuyant sur la combinaison de touches Ctrl+a

Vim affiche toujours « Enregistrement » en bas de l’écran.

 

6. Stopper l’enregistrement

Appuyez sur q
Pressez q pour stopper l’enregistrement. Vous allez avoir le message en bas de l’écran qui va disparaître.

7. Répéter l’action enregistrée 98 fois

Appuyez sur 98@a

Maintenant répéter cette action en appuyant sur 98 @ a
@a répète la macro « a » une fois
98@a répète la macro « a » 98 fois, ce qui va permettre d’avoir la séquence de nombre de 1 à 100 comme ci-dessous :

vim_macro98

Génération d’une séquence de nombre en utilisant une macro Vim