Auto completion de l'historique dans le Shell Bash (touches PageUp and PageDown)

Une console Bash permet de naviguer dans l'historique des lignes de commandes tapées avec les flèches Haut/Bas. C'est bien.
Il est aussi possible de taper quelques caractères d'une commande précédemment tapée et de naviguer, avec les touches PageUp/PageDown, dans l'historique des commandes précédemment tapées qui commencent par ces mêmes lettres. C'est mieux !

Description

Exemple :

Si vous avez tapé dans votre console :

$: ssh -i /home/pascal/.ssh/key pascal@example.com
$: ls -l /home/pascal/Documents
$: ls -l /var/www/public/data
$: ssh root@otherexample.com
$:...
$:etc

Il suffit de taper "ssh" pour pouvoir naviguer directement entre "ssh -i /home/pascal/.ssh/key pascal@example.com" et "ssh root@otherexample.com" avec PageUp/PageDown (touches ⇞/⇟) sans passer par les lignes intermédiaires.

 

Comment l'activer

Cette fonction est parfois activée par défaut sur certaines distributions, parfois non, ce qui est assez frustrant quand on y est habitué.

Dans le fichier /etc/inputrc commenter les lignes suivantes :

"\e[5~": beginning-of-history
"\e[6~": end-of-history

et ajouter celles-ci :

"\e[5~": history-search-backward
"\e[6~": history-search-forward

 

Debian et Ubuntu (et probablement d'autres distributions) ont déja incorporé ces lignes dans leur fichiers. Il n'y a plus qu'a commenter/décommenter les lignes pour passer de ça :

# mappings for "page up" and "page down" to step to the beginning/end
# of the history
"\e[5~": beginning-of-history
"\e[6~": end-of-history

# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward

à ça :

# mappings for "page up" and "page down" to step to the beginning/end
# of the history
#"\e[5~": beginning-of-history
#"\e[6~": end-of-history

# alternate mappings for "page up" and "page down" to search the history
"\e[5~": history-search-backward
"\e[6~": history-search-forward

 

Et aussi

  • Au lieu du fichier global /etc/inputrc, il est possible d'utiliser un fichier par utilisateur en créant un fichier "~/.inputrc"
  • Il faut se déconnecter du shell puis se logguer à nouveau pour que les paramètres soient pris en compte
  • Il évidemment possible d'utiliser d'autres touches que PageUp et PageDown en associant le raccourci à d'autres combinaisons que "\e[5~" et "\e[6~".

Source :
http://www.electrictoolbox.com/pageup-history-auto-completion-bash-shell/


Craeetd the greatest articles, you have.

Craeetd the greatest articles, you have.

Plain text

By submitting this form, you accept the Mollom privacy policy.