K-7.ch

I'll be back

Bash et les raccourcis claviers


Aujourd'hui, un article un peu plus court pour parler des raccourcis clavier sur Bash.

C'est très pratique et reposant de pouvoir manipuler Bash en bougeant le moins possible ses mains. Tant qu'on écrit du texte, c'est facile. Mais très souvent, on a besoin de bouger le curseur d'écriture, de supprimer un caractère, d'avoir l'auto-completion, etc. Pour cela, le réflexe est d'utiliser les touches dédiées du clavier: "TAB", "Flèche gauche", "Retour charriot", etc. Ces touches étant aux bords du clavier, cela demande quelques mouvements qui pourraient être évités.

Bash supporte une série de raccourcis combinant la touche control plus un caractère ou la touche alt plus un caractère. Chaque raccourci a sa fonction que nous verrons tout au long de l'article.

Les touches alt et control sont elles aussi aux bords du clavier, mais elles sont utilisables facilement sans trop bouger ou tordre ses mains.

Important

Pour la suite de ce tutoriel, je noterais les raccourcis A-x pour les raccourcis avec la touche Alt et C-x pour ceux avec la touche Control.

Manipuler le curseur

Commençons par le commencement: Comment avancer et reculer le curseur de texte?

  • C-f: Avancer d'un caractère
  • C-b: Reculer d'un caractère

f fait référence au mot anglais "Forward" (vers l'avant) et b à "Backward" (vers l'arrière).

Il est aussi possible de déplacer le curseur d'un mot plutôt que d'un caractère:

  • A-f: Avancer d'un mot, s'arrêter à la fin de celui-ci
  • A-b: Reculer d'un mot, s'arrêter au début de ce dernier

Pour aller en début et en fin de ligne, utiliser:

  • C-a: Début de la ligne
  • C-e: Fin de ligne
  • C-xx: Alterner entre la position actuelle du curseur et le début de la commande

Historique et exécution de commandes

Pour exécuter une commande que vous venez de taper ou de rapeller de l'historique, pressez:

  • C-m: Exécute la commande
  • C-o: Exécute également la commande et précharge dans le prompte la commande suivante dans l'historique.

puis charge dans le prompte la commande suivante dans l'historique.

Si vous voulez naviguer dans l'historique des commandes, comme avec les touches fléchées:

  • C-p: Commande précédente (p en référence à "previous")
  • C-n: Commande suivante (n pour "next")

Il est aussi possible de rechercher une commande dans l'historique:

  • C-r: Recherche dans l'historique
  • A-r: Si, dans l'invite de commande, vous avez modifié une ligne rappelée de l'historique, ce raccourcis la remet en l'état (tel qu'elle se trouve dans l'historique)

Lorsque vous recherchez dans l'historique avec C-r et que plusieurs occurrences sont trouvées, appuyez plusieurs fois sur C-r pour passer de l'une à l'autre. La recherche se fait de la commande la plus récente à la plus ancienne.

Lors de l'écriture d'une commande, vous pouvez insérer le 1er mot de la précédente commande exécutée. Pour cela:

  • A-.: Rappelle le 1er mot de la précédente commande

Manipuler le texte

Il est possible de supprimer un caractère avant ou après le curseur avec les raccourcis:

  • C-d: Supprimer le caractère qui se trouve après le curseur
  • C-h: Supprimer le caractère qui se trouve avant le curseur

Ces fonctions sont également disponibles pour supprimer les mots et les lignes:

  • A-d: Supprimer le mot qui se trouve après le curseur
  • C-w: Supprimer le mot qui se trouve avant le curseur
  • C-k: Supprimer du curseur jusqu'à la fin de la commande
  • C-u: Supprimer du curseur jusqu'au début de la commande

À noter que les mots ou lignes supprimés avec les commandes précédentes se retrouveront dans le presse papier de Bash. Ce presse papier est différent de celui du bureau, avec lequel il ne communique pas. Il offre toutefois la fonction de "Kill-ring", comme Emacs: Lorsque vous remplissez le presse papier, ce dernier n'oublie pas ce qu'il contient. Tout est gardé en mémoire et vous pouvez choisir ce que vous voulez "coller".

Les raccourcis du presse papier de Bash sont:

  • C-y: "Coller" le dernier élément présent dans le presse papier
  • A-y: Après avoir utilisé C-y, intervertit le texte collé avec ce qui se trouvait précédemment dans le presse papier.

Bash permet également d'intervertir 2 lettres ou 2 mots:

  • C-t: Intervertit la lettre sous le curseur avec celle qui la précède
  • A-t: Pareil, avec deux mots

Enfin, il est possible de transformer la casse d'un mot:

  • A-u: Convertit un mot en majuscule
  • A-l: Convertit un mot en minuscule
  • A-c: Capitalise un mot

Auto-complétion

Faire appelle à l'auto-complétion de Bash peut se faire avec le raccourci:

  • C-i: Équivalant à la touche TAB

Annuler

Il existe 2 raccourcis pour annuler:

  • C-/: Annule la dernière action
  • C-g: Quitte une recherche dans l'historique

Commenter

A-# commente la commande en cours d'écriture en la précédant du caractère #, sauve la dite commande dans l'historique et passe à la ligne suvante avec un prompte sans commande.

Gérer les processus

Quand un processus est lancé en premier plan depuis Bash, les raccourcis suivants sont disponibles:

  • C-c: Terminer le processus. Ne vous inquiétez pas, il ne souffrira pas.
  • C-Z: Mettre en pause le processus. Peut être relancé en premier plan ou en arrière plan avec les commandes fg ou bg. La commande jobs liste les processus en pause.

À noter que lors de l'écriture d'une commande, C-c faite sauter le curseur sur une nouvelle ligne de commande vide.

Nettoyer et gérer l'affichage

Il est possible de manipuler ce que montre Bash à l'écran avec ces trois raccourcis:

  • C-l: Nettoie l'écran, pour ne montrer qu'une invite de commande. Similaire à la commande clear.
  • C-s: Stop l'affichage. Très utile quand un programme très verbeux s'exécute.
  • C-q Reprend l'affichage stoppé avec C-s.

End Of File

Il existe un raccourcis pour envoyer le caractère EOF (End Of File): C-d.

Si on envoie ce caractère sur une ligne de commande, cela équivaut à la commande exit.

Bonus: Termux

En bonus, j'en profite pour présenter un émulateur de terminal pour Android: Termux. Assez complet, léger, intégrant Bash. Je vous invite à aller voir leur site web.