Comment copier et coller du texte sur le shell Bash de Linux

Vous voulez copier et coller sur la ligne de commande du shell Bash? Nous allons vous montrer plusieurs techniques que vous préfériez le clavier ou la souris. Celles-ci fonctionnent que vous soyez sur un bureau graphique ou sur un TTY textuel traditionnel.

Les raccourcis clavier habituels ne fonctionnent pas

Copier et coller du texte est un élément essentiel de l’utilisation d’un ordinateur. Lorsque les gens utilisent un ordinateur Linux pour les premières fois, qu’ils proviennent du monde Windows ou macOS, ils sont souvent déconcertés lorsqu’ils essaient de copier et coller dans une fenêtre de terminal.

Sous Windows, vous utilisez Ctrl + C pour copier une section de texte en surbrillance et Ctrl + V pour la coller. Dans macOS, vous utilisez Commande + C pour le copier et Commande + V pour le coller. Ils suivent la même convention de C pour copier et V pour insérer.

Ces mêmes frappes fonctionnent dans la plupart des applications graphiques Linux, telles que l’éditeur gedit ou la LibreOffice suite bureautique Ctrl + C copie le texte en surbrillance et Ctrl + V le colle au curseur. Notre nouveau venu sur Linux ne pense même pas au fait que ces conventions ont été appliquées à ces applications. Ils utilisent les touches de la mémoire musculaire et poursuivent leur travail.

Une fois que notre nouveau venu ouvre une fenêtre de terminal et essaie de copier et coller au Coque Bash invite de commande, que tout change. Ctrl + C et Ctrl + V étaient des fonctions allouées bien avant que le copier-coller ne soit envisagé. En fait, ces frappes ont été recrutées bien avant l’invention des coques graphiques, à l’époque où un télétype (TTY) était une chose physique.

Ctrl + C et Ctrl + V dans les TTY

Lorsqu’un TTY était un appareil physique, Ctrl + C était choisi comme combinaison de touches pratique pour générer un signal. Ce signal est SIGINT, qui indique au processus en cours de se terminer. Étant donné qu’une fenêtre de terminal est un TTY émulé, cette combinaison de touches (et bien d’autres) a été préservée et répliquée dans l’émulation. Notez que c’est la fenêtre du terminal qui est l’émulation. Le shell Bash est un programme exécuté dans ce TTY émulé.

Nous pouvons facilement voir les fonctions qui ont été allouées à Ctrl + C et Ctrl + V. Supposons que vous tapez la commande suivante et appuyez sur « Entrée ».

ls -R /

ls -R / dans une fenêtre de terminal

Comme nous utilisons l’option -R (récursive), la commande ls commencera à lister tous les fichiers et répertoires, en commençant par le répertoire racine. Après quelques instants, vous réalisez que ce n’est pas ce que vous vouliez, alors vous terminez le processus en appuyant sur Ctrl + C.

Ctrl+C

Ctrl + C dans une fenêtre de terminal

Le processus ls est terminé. La preuve visible de Ctrl + C est mise en évidence dans la capture d’écran. Il s’affiche sous la forme ^ C.

  Comment ajouter un séparateur à la barre des tâches dans Windows 10

La combinaison de touches Ctrl + V appelle «insertion verbatim». Cela vous permet d’entrer une représentation d’une touche dans ce que vous tapez, au lieu d’obtenir l’effet de la touche. Pour voir cela, essayez les commandes suivantes (ne tapez pas les virgules). (Par exemple, pour essayer le premier, appuyez sur Ctrl + V, puis sur Entrée.)

Ctrl+V, Enter
Ctrl+V, PgDn
Ctrl+V, RightArrow
Ctrl+V, Esc

Ctrl + V, entrer dans une fenêtre de terminal

En bref, vous remarquerez peut-être que Enter est représenté par ^ M. Nous avons vu précédemment que Ctrl + C apparaissait comme ^ C. Il semblerait que ^ représente Ctrl. Donc, Ctrl + M signifie probablement la même chose que Entrée. Cela signifie-t-il que nous pouvons entrer Entrée en tapant Ctrl + M? Essayez-le dans une fenêtre de terminal. Vous verrez que c’est le cas.

Donc, nous ne pouvons évidemment pas nous attendre à ce que Ctrl + C et Ctrl + V effectuent des copier-coller de texte alors qu’ils ont déjà des fonctions consacrées par le temps. Alors, que pouvons-nous utiliser?

Ctrl + Maj + C et Ctrl + Maj + V

Facilement mémorisables car ils sont très similaires à leurs homologues, Ctrl + Maj + C et Ctrl + Maj + V sont des remplacements directs pour Ctrl + C et Ctrl + V.

Si vous mettez en surbrillance du texte dans la fenêtre du terminal avec votre souris et appuyez sur Ctrl + Maj + C, vous copiez ce texte dans un tampon de presse-papiers.

Ctrl+Shift+C

Ctrl + Maj + C dans une fenêtre de terminal

Vous pouvez utiliser Ctrl + Maj + V pour coller le texte copié dans la même fenêtre de terminal ou dans une autre fenêtre de terminal.

Ctrl+Shift+V

Ctrl + Maj + V dans une fenêtre de terminal

Vous pouvez également coller dans une application graphique telle que gedit. Mais notez que lorsque vous collez dans une application – et non dans une fenêtre de terminal – vous devez utiliser Ctrl + V.

Coller depuis une fenêtre de terminal dans l'éditeur gedit

Et vous pouvez aussi aller dans l’autre sens. Vous pouvez mettre du texte en surbrillance dans gedit et appuyer sur Ctrl + C, puis le coller dans une fenêtre de terminal en utilisant Ctrl + Maj + V.

Copier depuis l'éditeur gedit et coller dans une fenêtre de terminal

La combinaison de touches Ctrl + Insérer est la même que Ctrl + Maj + C, et la combinaison Maj + Insérer est la même que Ctrl + Maj + V. La mise en garde ici est que ceux-ci ne peuvent être utilisés que dans la même fenêtre de terminal.

Utilisation de la souris: clic droit

Vous pouvez utiliser la souris pour copier et coller dans une fenêtre de terminal. Vous devez utiliser la souris pour mettre en surbrillance le texte que vous allez copier, alors pourquoi ne pas l’utiliser pour effectuer les actions de copier-coller?

  Comment désactiver la nouvelle interface Chrome

Une fois que vous avez mis en surbrillance du texte, cliquez avec le bouton droit de la souris et sélectionnez «Copier» dans le menu contextuel.

fenêtre du terminal avec menu contextuel et copie en surbrillance

Pour coller le texte copié, cliquez à nouveau avec le bouton droit de la souris et sélectionnez «Coller» dans le menu contextuel.

fenêtre de terminal avec menu contextuel et coller la sélection

Le texte est collé à la position du curseur sur la ligne de commande. Dans cet exemple, le chemin relatif n’a pas été donné correctement et Bash ne peut pas changer de répertoire. L’utilisateur a manqué le «~ /» depuis le début du chemin. Ils ont tapé le «~ /», puis copié le reste du chemin de leur tentative précédente et l’ont collé dans leur deuxième ligne de commande.

Lorsqu’ils appuient sur Entrée, ils sont déplacés vers le répertoire.

fenêtre de terminal avec un répertoire modifié obtenu par copier-coller

Cet exemple montre le collage dans la même fenêtre de terminal, mais vous pouvez utiliser cette technique du clic droit pour coller dans différentes fenêtres de terminal. Vous pouvez également coller dans des applications graphiques en utilisant cette méthode.

Utilisation de la souris: bouton central

Il existe un moyen encore plus rapide de copier et coller à l’aide de la souris, à condition que votre souris ait un bouton central. Si vous appuyez (doucement!) Sur votre molette de défilement et qu’elle clique, vous avez un bouton central.

Mettez en surbrillance du texte dans une fenêtre de terminal, puis appuyez sur le bouton du milieu. Le texte en surbrillance est collé à la position du curseur sur la ligne de commande. Le copier-coller se produit en même temps.

Alors, mettez du texte en surbrillance:

fenêtre du terminal avec du texte en surbrillance

Appuyez ensuite sur le bouton du milieu:

fenêtre de terminal avec texte en surbrillance collé sur la ligne de commande

Vous pouvez utiliser cette méthode pour coller entre différentes fenêtres de terminaux et dans des applications graphiques également. Mettez simplement le texte en surbrillance, passez à l’autre fenêtre de terminal ou application et appuyez sur le bouton du milieu.

Old School – Pas de souris

Et quand vous n’avez pas de souris? Si vous ne pouvez mettre aucun texte en surbrillance, comment pouvez-vous le copier et le coller?

Les serveurs Linux sont souvent configurés sans environnement de bureau graphique (GDE), ce qui signifie que vous n’avez pas accès à une souris. Même sur un ordinateur Linux qui exécute un environnement de bureau graphique comme GNOME et que vous avez une souris, il y aura des cas où vous ne pourrez pas utiliser la souris pour mettre du texte en surbrillance.

Par exemple, vous avez peut-être basculé vers l’un des TTY supplémentaires. Sur les distributions modernes, celles-ci sont situées entre Ctrl + Alt + F3 (TTY3) jusqu’à Ctrl + Alt + F6 (TTY6). (Ctrl + Alt + F2 vous ramènera à votre session GDE et Ctrl + Alt + F1 vous amènera à l’écran de connexion de votre GDE.)

  Comment trouver des informations sur la carte graphique sous Linux

Peut-être que vous utilisez même un véritable périphérique matériel TTY pour vous connecter à un ordinateur Linux ou Unix.

Quoi qu’il en soit, ces techniques fonctionneront pour vous. Le point à retenir ici est qu’il ne s’agit pas de copier-coller, mais de couper, de copier et de coller, et que vous ne pouvez couper et copier qu’à partir de la ligne de commande actuelle. Bien sûr, vous pouvez utiliser les touches fléchées pour faire défiler votre historique et trouver la ligne de commande à partir de laquelle vous souhaitez couper, copier et coller.

Les frappes que vous pouvez utiliser sont:

Ctrl + W: Coupez le mot avant le curseur et ajoutez-le au tampon du presse-papiers.
Ctrl + K: coupe la partie de la ligne après le curseur et l’ajoute au tampon du presse-papiers. Si le curseur est au début de la ligne, il coupera et copiera la ligne entière.
Ctrl + U: coupez la partie de la ligne avant le curseur et ajoutez-la au tampon du presse-papiers. Si le curseur est à la fin de la ligne, il coupera et copiera la ligne entière.
Ctrl + Y: collez le dernier texte coupé et copié.

Passons à TTY3. (Utilisez Ctrl + Alt + F1 pour revenir à votre bureau par la suite.)

Ctrl+Alt+F3
tty

tty3 dans une fenêtre de terminal

Nous avons un fichier que nous souhaitons supprimer, vérifions qu’il est ici.

ls -l file_to_delete.txt

ls -l file_to_delete.txt dans une fenêtre de terminal

Si nous utilisons la touche Flèche vers le haut, nous appellerons la dernière commande que nous avons utilisée dans l’historique des commandes. Nous pourrions simplement éditer cette ligne, mais le but est de démontrer le couper, copier et coller, nous allons donc accomplir notre tâche de supprimer le fichier de manière légèrement prolongée.

Commande récupérée de l'historique des commandes dans une fenêtre de terminal

Nous allons déplacer le curseur sur la première lettre du nom du fichier, puis appuyer sur Ctrl + K. Cela supprimera cette partie de la ligne et copiera le texte dans la mémoire tampon du presse-papiers.

L'effet de Ctrl + K dans une fenêtre de terminal

Nous allons appuyer sur Retour arrière jusqu’à ce que nous effacions la ligne.

Ligne effacée avec retour arrière dans une fenêtre de terminal

Nous allons taper le rm pour supprimer le fichier.

rm dans une fenêtre de terminal

Et maintenant, nous pouvons appuyer sur Ctrl + Y et coller dans le reste de la ligne.

L'effet de Ctrl + Y dans une fenêtre de terminal

Ceci termine notre commande et nous pouvons appuyer sur Entrée pour supprimer le fichier.

Fichier supprimé sans message d'erreur dans une fenêtre de terminal

Ce type de couper, copier et coller ne peut pas être utilisé entre les TTY supplémentaires. Vous ne pouvez pas couper, copier et coller entre TTY3 et TTY4, par exemple.

Les ATS supplémentaires sont mieux considérés comme une ligne d’ATS physiques assis côte à côte. Il n’y a aucun moyen de couper et coller entre les différents terminaux physiques, et il n’y a aucun moyen de le faire dans ces émulations.

Copiez ça, contrôlez

Quelle que soit la situation dans laquelle vous vous trouvez lorsque vous utilisez un ordinateur Linux, il y aura un moyen de copier et coller. Vous avez des options. Certains d’entre eux sont des options étranges, mais au moins il y a des options.