Pourquoi ^ C, ^ V etc. apparaissent-ils dans le terminal lorsque j'utilise le raccourci clavier Ctrl +?

24

Parfois, lorsque vous copiez du texte depuis la sortie des commandes, j'utilise accidentellement Ctrl + c au lieu de Ctrl + < kbd> Shift + c .

La ligne de commande l'interprète donc comme ^C ...

Pourquoi ça? Pourquoi la ligne de commande interprète-t-elle control comme ^ ?

    
posée DevRobot 01.12.2015 - 14:51
la source

4 réponses

35

Il n’insère pas réellement la séquence de caractères "^ C". Ceci est uniquement une représentation des caractères de contrôle ASCII non imprimables, tels que:

  • ^C → ETX (Fin du texte, envoie un signal de suppression), ASCII 0x03
  • ^D → EOT (Fin de transmission, termine l'entrée), ASCII 0x04
  • ^H → BS (retour arrière, \b ), ASCII 0x08
  • ^J → LF (saut de ligne, \n ), ASCII 0x0A
  • ^L → FF (flux de formulaires, nouvelle page, efface le terminal), ASCII 0x0C
  • ^M → CR (retour chariot, \r ), ASCII 0x0D

Ceci est seulement un petit extrait de caractères de contrôle ASCII possibles qui peuvent être insérés à l'aide du clavier; Vous pouvez trouver une liste complète ici .

Je pense que les plus importants à retenir sont Ctrl + C , Ctrl + D et Ctrl + L .

    
réponse donnée s3lph 01.12.2015 - 15:12
la source
8

Parce que les combos CTRL + KEY sont interprétés par le terminal comme des caractères ASCII non imprimables, et que ce sont les caractères non imprimables, vous devez les représenter.

La convention, issue des terminaux VT avec prise en charge ANSI , représente la CTRL + combo KEY représentant CTRL avec un caret ( ^ ) et KEY avec KEY .

    
réponse donnée kos 01.12.2015 - 15:12
la source
5

Lors de la copie et du collage depuis / vers un terminal, il est recommandé d’utiliser les raccourcis Ctrl + Insérer et Shift + < kbd> Insérer respectivement.

Ce sont les raccourcis les plus traditionnels pour l’utilisation du terminal, bien que vous remarquiez que dans un environnement graphique X Ctrl + Insert et Shift + Insérer sont liés au même Ctrl + C et Ctrl + V .

Dans la plupart des terminaux, Ctrl + C (représenté par ^C ) sont utilisés pour interrompre l'exécution d'un processus, donc coller avec ce raccourci ne fonctionnera pas. .

Pour copier et coller rapidement, vous pouvez utiliser le tampon principal de X en sélectionnant le texte que vous souhaitez copier, puis en cliquant sur le milieu où vous souhaitez le coller. Aucun clavier requis.

    
réponse donnée Keefer Rourke 01.12.2015 - 15:10
la source
-1

Vous devriez utiliser Ctrl + C et non Shift + Ctrl + C , car sur la ligne de commande, ils font la même chose (et Ctrl + C est plus facile que Shift + Ctrl + C ). Cela peut ne pas être vrai dans certains environnements graphiques où l'interface graphique capture des séquences de touches et fait quelque chose de spécial, mais si les séquences de touches sont réellement envoyées à la ligne de commande, il n'y a pas de différence. C'est pourquoi le fait d'appuyer sur Ctrl + C peut afficher ^ C comme un C majuscule, au lieu d'une minuscule C. La ligne de commande ne fait aucune distinction a probablement été jugé plus facile à lire). Ceci est vrai pour les lettres; pour les autres caractères, le Shift peut avoir un effet.)

En appuyant sur Ctrl - C envoie le code ASCII 64 sous la position de la lettre majuscule dans le tableau ASCII (et 96 de moins que la lettre minuscule dans le tableau ASCII) ). Donc, appuyer sur Ctrl - c (minuscule) envoie le code ASCII 3 (qui est 64 de moins que le code ASCII 67 du majuscule C ). Dans de nombreux environnements, vous pouvez maintenir Alt puis appuyez sur 3 sur le pavé numérique (puis relâchez la touche 3 , puis relâchez la Alt key) et vous pouvez obtenir le même effet.

En ce qui concerne ^ C, le ^ est juste un raccourci bien connu pour la clé " Ctrl ". De même, M- est un raccourci pour la clé " Alt ". Euh, oui. M représente le mot "Meta", qui peut être saisi en maintenant Alt et en appuyant sur ce qui vient ensuite, ou parfois en appuyant sur Esc (et en relâchant Esc ) puis en appuyant sur ce qui vient ensuite. L'article de Wikipedia sur la "Clé de contrôle": la section "Notation" décrit ceci comme une "notation traditionnelle". Ceci est également connu sous le nom de notation Caret ( article de Wikipedia sur la notation Caret , Unix StackExchange: la question de ryvnf à propos de la notation Caret ).

En ce qui concerne la dernière question, le shell de commande n’interprète "rien" comme étant un caret. En d'autres termes, la coquille ne lit rien et croyant que c'est un caret. Ce qui se passe, c'est que le shell utilise la notation caret bien connue pour la sortie. Comme autre exemple, vous pouvez voir le pager bien connu, "less", utiliser la notation caret en exécutant: dd if=/dev/zero bs=64 count=1 | less

(L'éditeur de texte "nano" utilise également la notation caret dans son aide en ligne, y compris les écrans complets de l'aide en ligne affichés après avoir appuyé sur ^ G, alias Ctrl - g .)

    
réponse donnée TOOGAM 01.12.2015 - 22:19
la source

Lire d'autres questions sur les étiquettes