Archives pour l'étiquette Bash

Maitriser la ligne de commande

Deux types de réaction du clavier sont possibles avec un shell bash : le mode vi et le mode emacs. En voici une courte introduction.

L’utilisation avancé de ces modes demande un apprentissage. Leur configurations ce fait dans le fichier /etc/imputrc ou dans le fichier propre fichier .imputrc présent dans votre home user.

Le mode emacs est le mode par défaut sous débian d’après ma propre expérience. C’est aussi mon mode préféré bien que le la vituosité des adorateurs du mode vi est extrèmement impréssionante.

Mode emacs

Pour le mode emacs l’alternative est de saisir directement dans votre terminal :
set -o emacs

Raccourcis Voici quelques raccourcis du shell bash en mode emacs pour mieux naviguer. D’abord avec la touche contrôle :

Ctrl+p : commande précédente
Ctrl+c : tue le processus en cours
Ctrl+z : suspend le processus en cours
Ctrl+j : passe a la ligne suivante (enter)
Ctrl+a : début de ligne
Ctrl+e : fin de ligne
Ctrl+l : efface l’écran
Ctrl+s : masque la saisie (Ctrl+q pour revenir)
Ctrl+u : efface tout à gauche du curseur
Ctrl+w : efface le mot à gauche du curseur
Ctrl+k : efface le mot à droite du curseur
Ctrl+y : colle (yank) ce qui avait été saisi précédemment,
Ctrl+d : efface le caractère courant ou tue le shell si la ligne est déjà vide,
Ctrl+h : effacement du caractère précédent le curseur
Ctrl+t : permet d’inverser deux lettres, iv -> vi
Ctrl+r : pour une recherche dans l’historique.
Ctrl+_ : annule l’action précédente
Ctrl+r pour une recherche dans l’historique
Ctrl+d : Fin
Ctrl+c : Fin

Escape

Maintenant avec la touche échappement (escape) :

Esc+> début de l’historique
Esc +< fin de l’historique
Esc+5+# : Affiche 5 carractères #, valable avec tous les carractères.
Esc+b : déplacement arrière d’un mot (backward)
Esc+f : déplacement avant d’un mot (forward)
Esc+t : échange le mot courant et le mot précédent
Esc+Backspace : effacer le mot précédent (comme Ctrl+w),
Esc+d : efface le mot suivant
Esc+u : Convertit le mot à droite du curseur en majuscules
Esc+l : Convertit le mot à droite du curseur en minuscules
Esc+c : met en majuscule la lettre courante, en minuscules le mot courant, puis se place au mot suivant

Point d’exclamation

Le ! en shell permet plein de trucs sympa.

 » !! » refait la dernière commande
 » !cmd » refait la dernière commande commençant par cmd
 » !cmd:p » permet de visualiser sans éxecuter la dernière commande commençant par cmd
 » !$ » est le dernier mot du ligne de commande précédent
 » !cmd :$ » est le dernier mot du dernier ligne de commande commençant par cmd
 » !* » est l’ensemble de la dernière ligne de commande à part le premier mot

C’est très performant, merci Mr Bourne et successeurs. Cela a changer ma façon de travailler. Si vous souhaitez en savoir plus je vous renvois vers la lecture du man.

Mode vi

Pour passer en mode vi saisir dans votre terminal saisissez :
set -o vi

Voici quelques autres raccourcis de bash en mode vi pour mieux travailler :

f et F pour faire un goto caractère
F pour retourner sur l’espace précédent de la ligne de commande.
b pour revenir au début du mot précédent, et w pour aller au mot suivant.
d^ pour effacer jusqu’au début de la ligne, et d$ pour effacer jusqu’à la fin.
u pour annuler un changement ; comme dans Vim, on peut faire des annulation successive.
un seul registre est disponible, mais c’est déjà pas mal : dw pour effacer le mot à partir du curseur, p pour le coller.
/ et ? pour rechercher dans l’historique.
r pour remplacer un caractère.

Documentation

http://www.linux-france.org

http://www-phase.c-strasbourg.fr