Outils pour utilisateurs

Outils du site


cours:informatique:fun_mooc:maitrise_du_bash_univ-reunion:210_aide_interaction

Bash: Aide à la saisie et l'édition

Le shell Bash intègre des fonctionnalités d'aide à la saisie, à l'édition et la correction sur la ligne de commande.

Mouvement du curseur

Ctrl+A place le curseur en début de ligne
Ctrl+E place le curseur en fin de ligne
Alt+F avance le curseur sur le prochain mot
Alt+B recule le curseur sur le prochain mot

Copier/coller

Ctrl+K coupe du curseur à la fin de ligne
Ctrl+U coupe du début de la ligne au curseur
Ctrl+W coupe le mot avant le curseur
Alt+D coupe le mot après le curseur
Ctrl+Y coller le contenu du presse papier
Ctrl+_ Annuler la dernière action

Modifications

Alt+C Mettre en majuscule la lettre sous le curseur
Alt+L Mettre en minuscule la lettre sous le curseur
Ctrl+T Inverse la lettre sous le curseur avec la précédente
Alt+T Inverse le mot sous le curseur avec le précédent
Ces fonctionnalité sont offertes par Readline, pour une liste exhaustive du mapping entre touches et les commandes readline voir le manuel de bash section “Readline Command Names”

Gestion de l'historique

On utilise régulièrement les mêmes commandes. L'historique des commandes saisies sur une session interactive est conservée. Via cet historique on peut rechercher et rappeler une commande précédemment invoquée.

# afficher les n dernières commandes invoquées
history 10
 
# effacer l'historique
history -c
 
# enregistrer l'historique courant dans le fichier
history -w .bash_history.backup
 
# ajoute le contenu du fichier à l'historique courant
history -r .bash_history.backup

Recherche

Pour effectuer une recherche dans l'historique, presser Ctrk+R. Le prompt est modifié. Le shell attend alors une chaine de caractère a rechercher dans l'historique

Ctrl+R recherche inverse, remonte l'historique
Ctrl+S recherche la commande en descendant l'historique
Ctrl+O invoquer la commande
Ctrl+G Abandonner la rechercher
Ces fonctionnalité sont offertes par Readline, pour une liste exhaustive du mapping entre touches et les commandes readline voir le manuel de bash section “Commands for Manipulating the History”

Expansion de l'historique

Le caractère ! est interprété par le bash comme le début d'une expression à développer (expansion) permettant de rappeler une commande ou une partie d'une commande, c'est l'expansion de l'historique.

#affiche (sans exécuter) la dernière commande contenant le motif
!?motif?:p
 
# rappeler la 3ième commande à partir de la fin de l'historique (plus récente)
!-3
 
# rappeler la commande d'indice 243
!243
 
# rappeler la commande précédente
!!
 
# L'expansion de l'historique n'a pas lieu obligatoirement en début de ligne
sudo !!
 
# Appelle la dernière commande en corrigeant motif:
^--ou^--out^
 
# équivalents
!!:s/--ou/--out/
!-1:s/--ou/--out/

L'expansion de l'historique permet également de faire références aux arguments des précédentes commandes:

# le nom de la commande est erroné mais les paramètres corrects
$ eho "hello bash!" > file.txt
eho : commande introuvable
 
# on corrige le mnémonique est on utilise tous les arguments de la commande précédente:
$ echo !*
!* Tous les arguments, forme abrégée de !!:*
!^ Premier argument, forme abrégée de !!:^
!$ Dernier argument, forme abrégée de !!:$
!!:n n ième argument de la dernière commande, 0 pour le mnémonique
!!:n-m arguments de n à m de la dernière commande
!2028:$ dernier argument de la commande commande 2028

Substitutions

Pour opérer une substitution sur une commande ou un argument récupéré dans l'historique:

$ wc -c file1.txt
42 file1.txt
 
# ici on crée un nouveau fichier par altération du nom de fichier
# récupéré sur l'argument de la commande précédente
$ touch !$:s/1/2/
 
# La substitution a lieu une seule fois.
# Pour la répéter plusieurs fois, introduire le symbole g
touch !-2:$:gs/1/2/

Quiz

Comment rappeler la dernière commande?

  • la flèche du haut

Quelle commande ou raccourci permet de lister toutes les commandes déjà saisies?

  • history

Quel raccourci permet de revenir au début de la ligne de commande ?

  • Ctrl + A

Quel raccourci permet de compléter le nom d'une commande, d'un répertoire ou d'un fichier en cours de saisie?

  • Tab ⇥
cours/informatique/fun_mooc/maitrise_du_bash_univ-reunion/210_aide_interaction.txt · Dernière modification : 2021/03/25 22:14 de 93.28.24.141