• Aucun résultat trouvé

L’ÉDITION DE COMMANDE EN LIGNE

Dans le document Linux (Page 84-87)

L’interpréteur de commandes : Bash

6.5 L’ÉDITION DE COMMANDE EN LIGNE

©DunodLaphotocopienonautoriséeestundélit.

Lorsque l’on quitte la session, la fonction est détruite car elle est liée à un shell. Si l’on souhaite qu’elle soit conservée, il faut l’introduire dans le fichier d’initialisation .bashrc. On peut également créer des fonctions dans les scripts. Dans ce cas la fonction est liée au shell qui exécutera le script.

6.5 L’ÉDITION DE COMMANDE EN LIGNE

L’un des grands intérêts du shell Bash réside dans l’interface d’édition de la ligne de commandes en mode interactif. En utilisant certaines touches spécialisées du clavier (flèche de direction, touche de suppression, insertion…) ou les touches de contrôle et échappement, le Bash permet de chercher une ligne de commandes dans l’historique, puis de l’éditer. Cette fonctionnalité d’édition d’une ligne de commande utilise certaines commandes de l’éditeur emacs. La combinaison

<ctrl p>indique qu’il faut appuyer simultanément sur les touches « Ctrl » et

« p ». La combinaison<meta f>indique qu’il faut utiliser la touche « meta » et

« f ». Sur un clavier standard la touche « meta » correspond à la touche « Alt ». Si cette touche n’existe pas sur votre clavier, utilisez la touche « Esc » puis « f ».

6.5.1 Mécanisme d’historique

Lorsque le Bash est utilisé en interactif, un mécanisme d’historique mémorise les dernières commandes lancées par l’utilisateur à partir d’un terminal. Le nombre de lignes gérées par le mécanisme d’historique est défini par la variable HISTSIZE (500 par défaut). Il est ainsi possible de rappeler ces commandes, de les modifier et de les rejouer.

La commande history n donne la liste numérotée des n dernières commandes. Il faut pour cela avoir positionné la commande set o history dans le fichier. bash profile. Lorsque l’on quitte la session, l’historique est sauvegardé dans un fichier dont le nom est défini dans la variable HISTFILE ($HOME/.bash historypar défaut).

9 cc o essai essai.c 10 cd /home/xstra1 11 ls fich1 fich2 12 man cat

xstra>

L’intérêt de ce mécanisme d’historique est de permettre de rechercher puis modi-fier une ancienne ligne de commandes. Il existe deux modes de recherche : le mode

68 6 • L’interpréteur de commandes : Bash

incrémental et le mode non-incrémental. Dans le mode incrémental, la ligne de commandes recherchée est affichée au fur et à mesure de la saisie du ou des carac-tères de recherche. Dans le mode non-incrémental, la ligne de commandes recher-chée est affirecher-chée après la saisie de la chaîne de caractères de recherche.

a) Le mécanisme de recherche de commande dans l’historique

Un certain nombre de combinaisons de touches permettent de rappeler des commandes mémorisées. Ces combinaisons sont les suivantes :

ou <ctrl P> cherche la commande précédente dans l’historique.

ou <ctrl N> cherche la commande suivante dans l’historique.

<ctrl R>motif recherche incrémentale en arrière, à partir de la ligne courante de l’historique, de la dernière commande contenant le motif. Cette recherche est incrémentale. Il est possible, après la saisie de motif, de refaire un <ctrl-r> qui continuera la recherche en arrière dans l’historique avec le même motif. La ligne de commandes trouvée pourra être modifiée par l’éditeur de lignes.

<meta p>motif<return> recherche non-incrémentale en arrière, à partir de la ligne courante de l’historique, la dernière commande contenant le motif. La ligne de commandes de l’historique contenant motif sera affichée après le <return>.

(reverse i search)`': ls <ctrl r> <return>

§ le premier <ctrl r> suivi de ls recherche la première

§ commande contenant ls et le deuxième <ctrl r>

§ continue la recherche dans l'historique.

§ <return> exécutera cette commande.

info.txt logiciel/ rpm/ tar/

xstra>

b) Le mécanisme de relance d’une commande compatible C-shell

!! relance la dernière commande exécutée.

6.5 L’édition de commande en ligne 69

©DunodLaphotocopienonautoriséeestundélit.

!10 relance la commande numéro 10 (cd /home/xstra1).

!ls relance la dernière commande commençant par ls (commande numéro 11 dans l’exemple ci-dessus).

! n relance la nièmecommande avant la dernière, sachant que la dernière est celle que l’on saisit.

!?toto? Renouvelle la dernière commande qui contient la chaîne de carac-tères toto(commande numéro 6 dans l’exemple ci-dessus).

Exemples

Cet exemple présente quelques commandes mémorisées xstra> alias p=”fc s | less”

ppermet de relancer la dernière commande suivie de|less. La signification de

|lessest détaillée au paragraphe 7.3.

xstra> ls l /etc

§ 350 lignes défilent à toute vitesse.

xstra> p

p exécute la commande ls l /etc associé avec| less(affichage page par page)

6.5.2 L’édition de commande en ligne

L’édition d’une ligne de commandes est possible pendant la saisie de la commande ou après une recherche d’une ligne de commandes dans l’historique.

Utilisation de base

Lors de la saisie d’une commande, il est possible :

d’effacer le dernier caractère tapé par la touche <backspace>,

d’effacer la ligne entière par < ctrl-u >.

À tout moment, vous pouvez déplacer le curseur d’un caractère vers la gauche avec la flèche gauche (ou <ctrl b>) ou vers la droite avec la flèche droite (ou

<ctrl f>). La position du curseur indique l’emplacement d’insertion du caractère saisi au clavier. Vous pouvez ainsi insérer des caractères à n’importe quelle position dans votre ligne de commandes courante. Les caractères à droite de votre curseur seront déplacés d’un pas pour inclure le caractère saisi lors de chaque insertion.

Après chaque caractère saisi, le curseur se déplace d’une position vers la droite. La suppression du caractère saisi est réalisée par la touche <backspace>, la touche

<suppr>ou <ctrl d> supprimant le caractère sur la position du curseur. De même, la suppression d’un caractère décalera le texte à droite du curseur d’un pas vers la gauche pour remplacer le caractère supprimé.

70 6 • L’interpréteur de commandes : Bash

Déplacement du curseur

En plus des flèches droite et gauche qui permettent de déplacer le curseur d’une position dans votre ligne de commandes, il existe des commandes qui permettent un déplacement plus rapide :

<ctrl A> déplacement du curseur au début de la ligne de commandes.

<ctrl E> déplacement du curseur à la fin de la ligne de commandes.

<meta F> déplacement du curseur d’un mot vers la droite.

<meta B> déplacement du curseur d’un mot vers la gauche.

Fonction couper-coller

Les touches permettant de supprimer une partie de votre ligne de commandes sont :

<ctrl K> suppression du texte de la position du curseur jusqu’à la fin de ligne.

<ctrl U> suppression du texte de la position du curseur jusqu’au début de la ligne.

<meta D> suppression du texte de la position du curseur jusqu’à la fin du mot.

Chaque partie de la ligne de commandes supprimée est stockée dans une mémoire tampon et pourra être réinsérée à l’aide des touches :

<ctrl Y> Insertion du dernier texte supprimé.

<meta Y> Décalage d’un pas des textes supprimés et insertion du texte courant. Cette commande n’est utilisable qu’après la commande

<ctrl Y>ou<meta Y>.

Dans le document Linux (Page 84-87)