web-dev-qa-db-fra.com

Achèvement de la ligne de commande à partir de l'historique des commandes

Donc, j'ai regardé l'histoire et Ctrl+R, mais ce n'est pas ce que je pensais savoir. Existe-t-il un moyen de taper au début d'une commande et de parcourir les correspondances de mon historique avec un raccourci bash?

# mysq(some shortcut key)

Donne moi:

# mysqldump  --add-drop-table -e -q -n -C -u 
(some shortcut key)
#  mysql -u ben.dauphinee -p
89
Ben Dauphinee

Pressage Ctrl+R ouvrira la recherche d'historique inversée. Maintenant, commencez à taper votre commande, cela donnera la première correspondance. En appuyant Ctrl+R encore et encore, vous pouvez parcourir l'histoire.

mysq(Ctrl+R)

Donnerait:

mysqldump  --add-drop-table -e -q -n -C -u 

Ctrl+R encore:

mysql -u ben.dauphinee -p
93
wag

Pour développer ce que Gilles a dit, j'ai ce qui suit dans mon .inputrc pour lier la flèche haut/bas à history-search-backward et history-search-forward:

# Key bindings, up/down arrow searches through history
"\e[A": history-search-backward
"\e[B": history-search-forward
"\eOA": history-search-backward
"\eOB": history-search-forward

Tapez simplement quelque chose (facultatif), puis appuyez sur la touche fléchée haut/bas pour rechercher dans l'historique des commandes qui commencent par ce que vous avez tapé.

Pour ce faire dans .bashrc plutôt que .inputrc, vous pouvez utiliser:

bind '"\e[A": history-search-backward'
68
raychi

Vous pouvez également appuyer sur le bouton PAGEUP pour compléter automatiquement une commande. Il recherche essentiellement le bash_history fichier.

7
0aslam0

Vous pouvez utiliser les commandes readline history-search-backward et history-search-forward pour naviguer entre les lignes de commandes commençant par le préfixe que vous avez déjà tapé. Aucune de ces commandes n'est liée aux clés dans la configuration par défaut.

Zsh (zle) a des commandes similaires history-beginning-search-backward et history-beginning-search-forward, également non lié aux clés par défaut. Il y a aussi history-search-backward et history-search-forward, qui utilise le premier mot de la commande en cours comme préfixe pour rechercher quelle que soit la position du curseur.

Si vous voulez un bon aperçu des commandes très similaires, vous pouvez obtenir une liste avec:

history|grep KEYSTRING

Copiez et collez ensuite avec le bouton central de votre souris.

Rgds - Joe

4
joe_zeroh