Rechercher dans votre historique bash

18 février 2016 Noobunschool 0 Commentaire

En triant mes favoris, j’ai retrouvé une astuce assez sympathique permettant d’effectuer des recherches dans votre historique bash, ce qui pourra vous donner un sacré coup de main si vous utilisez souvent un terminal (SSH compris).

Comme vous le savez surement, toutes les commandes tapées sont enregistrées dans votre historique Bash (~/.bash_history), vous pouvez naviguez dans cette historique dans votre terminal via les touches fléchées Haut et Bas.

Si vous voulez avoir un aperçu de votre historique il vous suffit d’utiliser la commande

history

 

Ci-dessous un exemple d’output d’history

1  PS1='\e[1;35m[\u@\h \w]\$ \e[m '
2  PS1="\e[0;32m[\u@\h \W]\$ \e[m "
3  PS1="\u@\h:\w [\j]\$ "
4  ping google.com
5  echo $PS1
6  tail -f /var/log/messages
7  tail -f /var/log/messages
8  clear

 

On peut toujours effectuer une recherche

history | grep command-name

 

Vous serez d’accord que ce n’est pas forcément ce qu’il a de plus pratique. Donc passons à la petite astuce qui vous permettra de mieux gérer votre historique bash.

 

Rechercher dans l’historique Bash

En modifiant un peu notre fichier .bashrc et .inputrc on peut arriver à faire beaucoup mieux et certainement plus pratique. Une fois ces modifications effectuées  vous n’aurez qu`à taper le début d’une commande et à presser la touche Haut, vous naviguerez alors dans tout l’historique de cette commande directement depuis votre terminal.

Modifiez ou créez .inputrc

nano ~/.inputrc

 

Ajoutez-y les linges suivantes

"\e[A": history-search-backward
"\e[B": history-search-forward

 

Passez à .bashrc

nano ~/.bashrc

 

Ajoutez dans ce fichier

shopt -s histappend
PROMPT_COMMAND='history -a'

 

Vous pouvez maintenant relancer votre terminal/session SSH

 

Source

Krevan. forum ubuntu-fr, Une meilleure gestion de l’historique bash