Sommaire
- Important
- Manipuler le curseur
- Historique et exécution de commandes
- Manipuler le texte
- Auto‐complétion
- Annuler
- Gérer les processus
- Nettoyer et gérer l’affichage
- End Of File
- Bonus : Termux
Bonjour nal.
Aujourd’hui je vais parler des raccourcis clavier sur Bash. Parce que j’en ai envie.
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‐complétion, etc. Pour cela, le réflexe est d’utiliser les touches dédiées du clavier : Tab
, ←
, « Retour charriot », etc. Ces touches étant aux bords du clavier, cela demande quelques mouvements qui pourraient être évités.
Bash prend en charge une série de raccourcis combinant la touche Ctrl
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 Ctrl
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 Ctrl
.
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, pressez:
-
C-m
: retour charriot.
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 (telle 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 premier mot de la précédente commande exécutée. Pour cela :
-
A-.
: rappelle le premier 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‐papiers de Bash. Ce presse‐papiers 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‐papiers, 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‐papiers de Bash sont :
-
C-y
: « coller » le dernier élément présent dans le presse‐papiers ; -
A-y
: après avoir utiliséC-y
, intervertit le texte collé avec ce qui se trouvait précédemment dans le presse‐papiers.
Bash permet également d’intervertir deux lettres ou deux 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 majuscules ; -
A-l
: convertit un mot en minuscules ; -
A-c
: capitalise un mot.
Auto‐complétion
Faire appel à l’auto‐complétion de Bash peut se faire avec le raccourci :
-
C-i
: équivalant à la toucheTab
.
Annuler
Il existe deux raccourcis pour annuler :
-
C-/
: annule la dernière action ; -
C-g
: quitte une recherche dans l’historique.
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 commandesfg
oubg
. La commandejobs
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 vide ; similaire à la commandeclear
; -
C-s
: stoppe l’affichage ; très utile quand un programme très verbeux s’exécute ; -
C-q
: reprend l’affichage stoppé avecC-s
.
End Of File
Il existe un raccourci pour envoyer le caractère EOF (End Of File) : C-d
.
Si l’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 le site Web.
# Y'a les mauvaises touches au bord du clavier et les bonnes touches au bord du clavier
Posté par Mimoza . Évalué à 5. Dernière modification le 18 septembre 2017 à 13:11.
Pour le «TAB» et «Ctrl» je ne suis pas du tout d'accord.
Alt pouvant souvent être atteint par le pouce replié il ne souffre donc pas du souci du Ctrl. Le pavé directionnel sur un clavier de portable est souvent tout aussi inaccessible que le Ctrl.
NB : Si tu en es à optimiser ta frappe par des raccourcis clavier es-tu passé au Bépo qui te fera gagner bien plus de ce côté ?
PS : Sinon merci pour cet article très intéressant ;-)
[^] # Re: Y'a les mauvaises touches au bord du clavier et les bonnes touches au bord du clavier
Posté par Yuul B. Alwright . Évalué à 2.
Yep. Sur un clavier TypeMatrix.
Mais je suis en train de construire un clavier mécanique matriciel de 5 x 13 avec:
- Une barre d'espace plus étroite (1 x 2)
- Les touches "Entré" et "Retour arrière" de part et d'autre de la barre d'espace
- Les touches "Ctrl" de part et d'autre des touches "Entré" et "Retour arrière"
- Les touches "Alt" de part et d'autre des touches "Ctrl"
- Pas de touche dédié à Caps-Lock ( [Fx] + [shift])
- Pas de touches dédiés à F1, F2, etc ( [Fx] + [1], [Fx] + [2])
- Les touches "Escape" et "Tab" plus bas.
Ce qui donnerait, pour la dernière ligne du clavier:
[Super] [Alt] [Ctrl] [Entré] [barre d'espace] [Retour arrière] [Ctrl] [AltGr] [←] [↑] [↓] [→]
[^] # Re: Y'a les mauvaises touches au bord du clavier et les bonnes touches au bord du clavier
Posté par claudex . Évalué à 4.
Enfin un clavier où Backspace n'est pas juste à côté de Enter.
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: Y'a les mauvaises touches au bord du clavier et les bonnes touches au bord du clavier
Posté par Yuul B. Alwright . Évalué à 0. Dernière modification le 18 septembre 2017 à 13:43.
Oui, mais avec 65 touches, c'est dure de tout avoir.
[^] # Re: Y'a les mauvaises touches au bord du clavier et les bonnes touches au bord du clavier
Posté par Michaël (site web personnel) . Évalué à 2.
Tu peux entrer les caractères de contrôle directement,
^H
et^J
. Ah mince…[^] # Entrée séparée de l’effacement arrière
Posté par Arthur Accroc . Évalué à 2.
Ce n’est pas si rare : des claviers qui satisfont à cette exigence, il doit y en avoir quelques centaines de millions (à la louche) aux États-Unis. Leur touche Enter est deux fois moins haute mais plus large que la touche Entrée des claviers européens, la touche \ (correspondant à la touche * en Azerty) prenant la place du haut de la touche Entrée.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
# Readline
Posté par Colin Pitrat (site web personnel) . Évalué à 10.
À noter que ce ne sont pas vraiment des raccourcis claviers de bash mais de readline et donc utilisable dans plein d'outils.
D'autre part, ces raccourcis sont configurables et il existe un mode vi, ce qui est encore plus pratique (certes echap est au coin du clavier mais ça évite les combinaisons acrobatiques et puis avec un peu de bricolage, on peut la remplacer par une pédale).
[^] # Re: Readline
Posté par pulkomandy (site web personnel, Mastodon) . Évalué à 9.
Pourquoi du bricolage? C'est un périphérique tout à fait standard et pas très cher:
http://www.dx.com/p/fs1-1-usb-foot-switch-keyboard-mouse-control-foot-pedal-black-190cm-cable-198679#.Wb_ID3WslFQ
Il y a même une version pour les gens qui veulent utiliser leurs trois jambes:
http://www.dx.com/p/usb-triple-action-foot-switch-keyboard-control-foot-pedal-56508#.Wb_IFHWslFQ
[^] # Re: Readline
Posté par damaki . Évalué à 1. Dernière modification le 20 septembre 2017 à 09:22.
J'aurais plutôt tendance à faire confiance à Kinesis pour la qualité du matos, sa durée de vie et les drivers.
[^] # pédalier clavier usb maison
Posté par Anonyme . Évalué à 1. Dernière modification le 24 octobre 2017 à 04:38.
Pourtant avec deux trois notions de bidouille et d'électronique on peut faire la même chose soi en pure construction (par le biais ou non d'un makerspace/Fablab) soi en hackant un pédalier de guitare.
Et j'ai plus confiance à un microcontroleur de type Atmel AVR et quelques boutons, voire potentiomètres ou résistances variables pour des pédales analogiques, pour dix fois moins cher en composants standards et facilement réparables plutôt qu'à Kinesis ou un noname chinois qui ne propose ni datasheet ni code source et certainement une configuration bien plus limitée que les possibilités du controleur.
[^] # Re: Readline
Posté par tao popus . Évalué à 1.
Génial ça ! Je ne connaissais pas. Les 3 pédales c'est aussi pratique pour les pianistes :). couplé à un clavier midi maître ça fait tout ce qu'il faut.
Il y a aussi dans le genre les pédales fait pour les simulateurs de vols qui envoient des coordonnées analogiques, je n'en ai jamais essayé, en périph usb, mais normalement, il y a au moins gauche opposé à droit (pour l'aileron, et poussée en avant pour les freins, donc, on peut imaginer de l'appliquer à la bar de défilement, sans bouger la main ou souris de l’emplacement où elle se situe.
Du coup j'imagine aussi un pédalier (pas sur que ça s'appelle comme ça, comme un clavier, mais pour les pieds) pour taper du texte quand on a pas de mains (pour un pingouin ou manchot donc par exemple).
[^] # Re: Readline
Posté par SChauveau . Évalué à 5.
En effet, voici par exemple mon fichier ~/.inputrc
Les 2 premières commandes me permettent d'utiliser A-Left et A-Right pour me déplacer en début et fin de ligne (équivalent à C-a et C-e)
La troisième commande permet d'utiliser C-F1 pour afficher toutes les fonctions de readline avec leur raccourcis clavier. Sur mon terminal, "\e[1;5P" correspond à C-F1 mais cela peut varier (voir ci dessous) En pratique, ce raccourci est équivalent à la commande bash bind -P sauf que C-F1 peut être utilisé sans casser la commande en cours d'écriture.
La quatrième commande est en fait une macro qui transforme C-x q en A-b (backward-word) " A-e (forward-word) " . En pratique cela transforme le mot actuel en "chaîne"
Pour trouver la séquence correspondant à une combinaison de touches j'utilise généralement la commande cat sans arguments.
Dans cet exemple, j'ai utilisé les raccourcis A-F2, A-F3 et finalement C-c pour quitter cat.
^[ est le caractère d’échappement qui doit devenir \e dans votre .inputrc
Par exemple, je pourrais associer A-F2 à la macro "Salut" dans mon .inputrc
ou alors depuis un prompt bash avec la commande bind:
Il est aussi possible d'associer des commandes bash à des raccourcis clavier. Par exemple pour que C-x l transforme la ligne en cours d'édition en minuscules il suffit d'ajouter les lignes suivantes à votre .bashrc:
[^] # Re: Readline
Posté par tao popus . Évalué à 1.
Je ne sais pas si c'est lié à readline, VTE ou une autre couche dans X11, mais en général sur les terminaux (au moins VTE), on peut couper/copier/coller avec ctrl+shift+X/C/V, ça permet de ne pas avoir de conflit avec ctrl-C et de garder le tampon du surlignement de souris/bouton milieu pour d'autres données :).
# Raccourcis bash = raccourcis emacs ou vi
Posté par damaki . Évalué à 4. Dernière modification le 18 septembre 2017 à 13:24.
Les raccourcis bash sont par défaut réglés sur des raccourcis façon emacs, d'où la touche Ctrl à tout va. En cas de troubles troubles musculo-squelettiques, autrement dit de douleurs aux doigts ou poignets, passez plutôt aux binding type vi, ça évite de forcer sur l'auriculaire gauche.
L'autre solution classique (que j'utilise) est de remapper votre clavier pour inverser maj lock et control, voire supprimer maj lock. Comment faire ça varie suivant l'OS et le modèle de clavier, mais une horde de gens sur les internets a déjà fait une tonne de tutos là dessus. A noter qu'il y a aussi des gens qui utilisent des pédaliers pour maj et ctrl.
En tous cas, merci pour le guide parce les guides en français ne sont pas légion.
[^] # Re: Raccourcis bash = raccourcis emacs ou vi
Posté par luxcem . Évalué à 2.
La touche Ctrl à la place de Alt est logique aussi à la manière des claviers des Lisp-Machine.
https://en.wikipedia.org/wiki/Space-cadet_keyboard#/media/File:Space-cadet.jpg
[^] # Re: Raccourcis bash = raccourcis emacs ou vi
Posté par Obsidian . Évalué à 10.
Purée, il y avait déjà des touches Like et Dislike à droite du clavier :)
# Je ne m'étais jamais renseigné
Posté par karchnu . Évalué à 2. Dernière modification le 18 septembre 2017 à 13:24.
Bien que j'utilise mon terminal quotidiennement, je ne m'étais jamais trop renseigné sur les raccourcis possibles. Je connaissais quelques raccourcis présentés ici, pas plus. Ton post a au moins pour mérite de m'y faire penser. :)
PS: j'espère que ces raccourcis sont également disponibles sur d'autres interpréteurs, Bash est quand même peu répandu sur mes machines.
# On est en 2017
Posté par Sébastien Le Ray . Évalué à -3.
Les navigateurs savent très bien mettre en page si la ligne déborde de l'écran…
[^] # Re: On est en 2017
Posté par xcomcmdr . Évalué à 0.
IT'S THE CURRENT YEAR !!1one
"Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)
[^] # Re: On est en 2017
Posté par claudex . Évalué à 5.
Entièrement d'accord mais pour sa défense, le markdown de LinuxFr.org ne gère pas le retour à la ligne comme les implémentations les plus répandues. Normalement, si on fait un retour la ligne, il n'est pas prix en compte (à moins que la ligne finisse par deux espaces), ici, ça fait un retour à ligne. Cela vient d'utilisateur qui se sont plains du fonctionnement classique de Markdown lorsque ce dernier a été mis en place ici (personnellement, je préfère le comportement classique).
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: On est en 2017
Posté par jben . Évalué à 2.
Ça fait longtemps, mais j'ai ouvert un rapport de bug à ce propos
# Zsh
Posté par Maderios . Évalué à 4.
Ces raccourcis concernent également Zsh.
# Et l'indispensable C-o (ou Ctrl+o)
Posté par Thomas Monjalon . Évalué à 3.
C-o permet de valider une commande (comme Enter ou C-m) puis d'afficher la commande suivante dans l'historique.
Ça s'utilise donc en combinaison avec C-r ou C-p afin de refaire une série de commandes déjà exécutées auparavant.
[^] # Re: Et l'indispensable C-o (ou Ctrl+o)
Posté par eingousef . Évalué à 5.
Il y a aussi
Alt-#
qui commente la commande que tu es en train de taper et passe à la ligne suivante. La commande est alors stockée dans l'historique (précédée par#
) sans être exécutée.*splash!*
[^] # Re: Et l'indispensable C-o (ou Ctrl+o)
Posté par deuzene (site web personnel) . Évalué à 1.
Et aussi
Ctrl+_
sorte deCtrl+z
.« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »
[^] # Re: Et l'indispensable C-o (ou Ctrl+o)
Posté par Obsidian . Évalué à 2.
T'es sûr que c'est pas plutôt Ctrl+\ (qui se trouve sur la même touche que _ sur un clavier AZERTY) et qui permet par défaut d'envoyer un SIGQUIT ?
# merci
Posté par jeep . Évalué à 4.
merci pour ce rappel, très intéressent.
perso pour l'historique j'ai un fichier .inputrc avec
"\e[A": history-search-backward
"\e[B": history-search-forward
set show-all-if-ambiguous on
set completion-ignore-case on
ça me permet de taper le début de la commande que je veux, puis avec les flèches haut/bas de trouver la commande + les args voulut.
donc de filtrer.
# Dernier argument
Posté par flagos . Évalué à 7. Dernière modification le 18 septembre 2017 à 18:47.
Un autre raccourci que j'utilise quotidiennement:
Escape-_
rappelle le dernier argument tapé lors de la dernière commande.Par exemple:
$ ls dossier
$ cd
Escape-_
[^] # Re: Dernier argument
Posté par ranDom (site web personnel) . Évalué à 3.
Il y a !$ pour le dernier argument de la précédente ligne de commande, je crois que j'utilise plus souvent ce raccourci que la touche tab.
!:n pour récupérer le nième argument.
^ foo ^ bar (sans les espaces) pour remplacer foo par bar dans la précédente ligne de commande
[^] # Re: Dernier argument
Posté par Psychofox (Mastodon) . Évalué à 5. Dernière modification le 19 septembre 2017 à 07:46.
Les chapeaux ne permettent que de remplacer la première occurence. Même si c'est plus long à taper je lui préfère souvent
!!:s/foo/bar
et!!:gs/foo/bar
(le g pour remplacer toutes les occurences) pour un meilleur contrôle.À utiliser avec précaution cela-dit
[^] # Re: Dernier argument
Posté par Psychofox (Mastodon) . Évalué à 1. Dernière modification le 19 septembre 2017 à 08:00.
Et accessoirement le Escape-_ reste utile si la même chaine de caractère est présente à plusieurs endroits et que tu changes un début ou fin de ligne.
# C-l
Posté par lecteur . Évalué à 2.
Avec C-l, c'est l'écran qui est nettoyé, pas la ligne de commande. Si quelque chose a déjà été saisi, en faisant C-l, l'écran est effacé, mais pas ce qui a déjà été saisi.
Concrètement, il me semble que ce sont des retours à la ligne qui sont ajoutées, à peu près autant que la hauteur de la console.
[^] # Re: C-l
Posté par lecteur . Évalué à 1.
Personnellement, je n'utilise jamais clear, mais uniquement C-l, parce que :
[^] # Re: C-l
Posté par Obsidian . Évalué à 3.
L'avantage de la commande
clear
est quand qu'on peut la mettre dans un script…# Titre de journal mal choisi : emacs vs viistes
Posté par Dabowl_75 . Évalué à 0.
Ton journal nous décrit comment se servir de bash en mode emacs. Qui est le mode par défaut (tiens tiens on se demande pourquoi :-) ?)
Mais on peut aussi se servir de bash en mode vi.
Avec la commande :
Et ensuite on se sert des commandes "vi" pour effectuer le rappel de commande etc..
Dommage que ce rappel n'ait pas été fait, il y a un parti pris pour emacs que je trouve regrettable pour la liberté de choix :-)
[^] # Re: Titre de journal mal choisi : emacs vs viistes
Posté par foobarbazz . Évalué à 5.
Je ne pense pas que ce soit de la malveillance. Les gens qui n'utilisent pas emacs ne savent pas que ce sont les raccourcis emacs ^
[^] # Re: Titre de journal mal choisi : emacs vs viistes
Posté par Yuul B. Alwright . Évalué à 3.
Et c'est tout ce dont on a besoin. :D
[^] # Re: Titre de journal mal choisi : emacs vs viistes
Posté par Pieq . Évalué à 1.
Bonjour,
quels sont les équivalents de ces raccourcis si on utilise le mode vi ?
C-xx
: alterner entre la position actuelle du curseur et le début de la commandeC-r
: recherche dans l’historiqueA-.
: rappelle le premier mot de la précédente commande.Merci !
# ASCII
Posté par Obsidian . Évalué à 10. Dernière modification le 20 septembre 2017 à 17:32.
On note que ça fait double-emploi…
Ça vaut le coup de rappeler que tous les « raccourcis » ci-dessus, même si certains d'entre eux restent interceptés par le shell, ne sont pas des combinaisons choisies arbitrairement par lui, mais font partie à la base du code ASCII.
Il est utile de rappeler également que la touche « Ctrl » n'est pas une simple meta-key comme Alt, mais sert en principe à émettre les codes de contrôle de la table ASCII (soit les codes 0 à 31 en début de table), codes qui étaient le seul moyen de piloter les appareils et terminaux lorsqu'il étaient reliés à leur hôte à l'aide d'une ligne série. Donc saisir Ctrl+A, Ctrl+B, Ctrl+C… jusqu'à Ctrl+Z, permet d'émettre les codes 1 à 26.
C'est aussi pour cela que Escape est placé juste après cette gamme, sur le code 27. ESC étant justement le code permettant de s'échapper du flux ASCII standard et d'annoncer une séquence hors-protocole, ce qui permet de passer la main à n'importe quel standard.
Et c'est pour cela encore qu'on trouve la touche sur pratiquement tous les ordinateurs et terminaux depuis les années 1960. Elle est donc réellement censée émettre un caractère à chaque fois qu'on la combine avec une lettre, et pas n'importe lequel : le code de 1 à 26, soit 0x01 à 0x1a en hexadécimal. Donc, on doit pouvoir capter la saisie de ce caractère avec un simple fgetc() ou équivalent (sauf s'il est intercepté entre les deux par une sous-fonction du shell ou autre). Essayez avec
stty -icanon ; od -tx1 -vw1
, par exemple. C'est totalement différent de « Alt » par exemple, qui à ma connaissance est spécifique à l'IBM PC (même si d'autres machines ont des meta-key similaires depuis longtemps) et qui n'est pas du tout tenue d'émettre quoi que ce soit (ce qui rendait d'ailleurs son exploitation compliqué quand on écrivait ses premiers programmes en BASIC).Du coup :
- Ctrl+I : Neuvième lettre, 09 ou 0x09 → « HT Horizontal tabulation », donc le code ASCII d'une tabulation. C'est donc normal qu'elles émettent le même code. Essayez avec la commande ci-dessus pour vous en convaincre…
Ctrl+M : Treizième lettre, 13 ou 0x0d → « CR Carriage Return », code de retour en début de ligne.
Ctrl+L : Douzième lettre, 12 ou 0x0c → « FF Form Feed », soit littéralement : « alimentation en papier (ou même "en formulaire") ». C'est en principe à l'usage des imprimantes et cela sert à leur commander d'aspirer une feuille et de présenter le haut de la page devant la tête d'impression pour commencer à écrire dessus. Et évidemment, s'il y a déjà une feuille en cours de traitement, celle-ci est éjectée (laissant donc le reste vide) pour avancer directement à la suivante, ce qui correspond donc à un saut de page. Et sur les terminaux dont le système d'impression a été remplacé par un écran, ça revient donc à effacer la page et à replacer le curseur en haut à gauche.
Ça marche normalement sur toute imprimante qui se respecte, mais à condition que ce soit une matricielle (continue ou feuille à feuille) ou à la limite une jet d'encre, qui peuvent encore fonctionner en mode texte même si les pilotes le font de moins en moins, mais pas les laser dont le mode de fonctionnement (dépôt de poudre sur la feuille puis passage au four) leur impose de traiter toute la feuille en une seule opération, sauf si elles peuvent bufferiser le texte jusqu'au moment où il faut éjecter la page, soit une page pleine ou justement un code 12 «FF».
Côté écrans, ça marchait sur de nombreux huit bits, et notamment sur tout ce qui était Vidéotex, donc sur les Minitel et sur les 8 bits Thomson (MO6, TO8, etc.). C'était aussi plus pratique qu'un « CLS » pour avoir un écran vraiment propre et éviter le « OK » associé à la commande. Évidemment, l'une des exceptions est justement les DEC ANSI :-( Standard suivi par la console des PC, que ce soit DOS ou les consoles virtuelles de Linux, et par les XTerm. Par contre, le shell a conservé cette fonctionnalité et l'émule proprement (même si c'est lui qui le fait) et c'est pour cela qu'il en profite pour ré-afficher l'invite de commande.
Là encore, les terminaux et les premiers ordinateurs personnels fonctionnaient uniquement en mode texte, donc interrompre le flux en provenance du serveur permettait de suspendre le défilement à l'écran (c'était aussi pratique pour les imprimantes qui n'arrivaient pas forcément à suivre) et Linux mappe ça en principe, sur ses consoles virtuelles (pas sous X-Window) avec la touche Pause du PC et sa LED associée, touche qui sert initialement à ça même sur PC (apparu en 1981, pas dans les années 60). Bon, évidemment, je viens d'essayer avec une Fedora 25. Ctrl+S Ctrl-Q fonctionnent toujours mais plus la touche Pause. Bon.
cat
par exemple.[^] # Re: ASCII
Posté par SChauveau . Évalué à 5.
Dans certains cas, il peut être intéressant de pouvoir passer un caractère de contrôle à une commande bash. Une solution consiste à utiliser une string autorisant les séquence d’échappement. Par exemple, pour insérer le caractère #1
Une alternative consiste à utiliser CTRL-V suivit du caractère de contrôle désiré. Pour insérer le charactère #1 (A), on utilisera donc CTRL-V CTRL-A. La commande doit alors ressembler à ceci:
CTRL-V permet également d'insérer ESC ([) , tab, … par exemple pour emettre des séquences VT100
CTRL-V permet aussi d'obtenir la séquence de caractère émise par les touches spéciale telles que Fn, Insert, Left, Right, …
Pour les utilisateurs d'Emacs, le raccourcis clavier CTRL-Q permet de faire la même chose que CTRL-V sous bash.
[^] # Re: ASCII
Posté par Obsidian . Évalué à 8. Dernière modification le 21 septembre 2017 à 09:47.
Tout-à-fait :) Et cela a même deux autres avantages supplémentaires :
— Ça permet de saisir une tabulation dans une chaîne, utile par exemple pour les regexps filtrant les blancs et ne disposant pas de classes dédiés :
grep "[^V^I ]\+
(ou^V^I
correspond à la saisie de Ctrl+V Ctrl+I et est traduit à l'écran par une belle tabulation (un blanc de plusieurs caractères), suivi d'un(e) vrai(e) espace ;– En faisant Ctrl+V Ctrl+O; ça permet de récupérer le jeu de caractères normal quand on a fait un
cat
d'un fichier binaire à l'écran et que l'affichage est sans dessus dessous. Bien sûr, il existereset
mais ça permet d'éviter de lancer une commande rien que pour ça et également de s'en sortir quand celle-ci n'est pas disponible (et en plus, c'est plus rapide).Là encore, pour l'anecdote, Ctrl+N et Ctrl+O correspondent aux codes 14 et 15 (0x0e et 0x0ef), soit respectivement « SO: Shift Out » et « SI : Shift In ». Et ces codes servaient à décaler le ruban d'impression, comme sur les machines à écrire, pour changer de couleur.
Sur les terminaux à écran, c'est devenu « C0 » et » C1 » (Zero et Un) mais c'est sympa parce que les glyphes correspondent : SO↔C0 et SI↔C1.
Au passage, C1 est censé contenir des caractères spéciaux et notamment graphiques (principalement pour faire des bordures), donc le Vidéotex a eu la bonne idée d'utiliser les mêmes codes pour passer du jeu alphanumérique au semi-graphique (les gros pixels sur le Minitel) et réciproquement. Et Ctrl+V servait aussi à introduire un caractère, mais qui servait à accentuer la minuscule qui suivait (ce qui donnait des séquences de 3 caractères pour les caractères spéciaux contre 1 en temps normal, un peu comme en UTF-8).
Et par conséquent, pour les masochistes, Ctrl+V Ctrl+N permet donc de faire volontairement foirer son terminal. :)
Bon, ÉVIDEMMENT, ça ne marche plus non plus sous gnome-shell, que ce soit avec le Xterm ou le gnome-terminal (je suppose qu'ils en ont profité pour empêcher également les terminaux de passer accidentellement dans l'autre jeu) mais l'insertion d'une tabulation fonctionne toujours et le tout est toujours valables avec les consoles virtuelles Linux en mode texte.
# Merci
Posté par Seb . Évalué à 3.
Merci, je ne les connaissais pas tous.
de mon côté j'utilise énormément la séquence [Echap][_], qui permet rappeler le dernier argument de la commande précédente, et ça remonte dans les commandes quand on fait cette séquence plusieurs fois.
++
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.