J'ai commencé à utiliser la console Linux il y a longtemps mais je ne me suis jamais interrogé sur le caractère circonflex aka caret ( ^
). Je voudrais demander pourquoi il est utilisé pour remplacer le mot Ctrl
.
J'y ai pensé l'autre jour alors que j'utilisais nano et j'ai également cherché s'il y avait des réponses sur Internet mais ce que j'ai trouvé n'était que des questions sur "ce que c'est" et "ce qu'il représente".
Y a-t-il des raisons historiques? Ou cela vient-il d'une convention étrange?
history
documentation
special-characters
Giacomo Cerquone
la source
la source
vi
(au moins celui de SunOS 3.5) utilisait un caret / circonflexe devant les lettres pour reprécents que ctrl-C, ctrl-V, etc. lestty
faisaient et le font aussi. D'un autre côté,^
fonctionnait comme synonyme de|
scripts shell à cette époque, vous auriez donc toujours à faire une barre oblique inverse dans lesstty
invocations. Bonne question.3
/#
),^
pourrait être un raccourci visuel pour un type différent de «décalage», pour ainsi dire. Le fait que pour la plupart des touches / caractères saisissables, Ctrl désactive simplement le 64 bits du caractère peut également être lié -^
étant un raccourci pourNOT (0x40)
.Réponses:
La circonflexe (
^
) était assimilée au caractère de flèche vers le haut sur les téléimprimeurs. Au moment où SunOS et ainsi de suite sont apparus, cette partie remonte à plus de 10 ans. Le même caractère (remplacement) a été utilisé dans les expressions mathématiques, par exemple,^
pour les pouvoirs (là où d'autres pourraient utiliser**
). Il a également été utilisé en Pascal pour indiquer des pointeurs.Utilisé pour indiquer les caractères de contrôle, il date (au moins) avant 1980. Vous pouvez le trouver utilisé dans la documentation DEC par exemple (il était certainement utilisé au milieu des années 1970 lorsque j'ai utilisé teco. Le manuel des utilitaires de 1973 (page 927) montre un controlCpar exemple.
À la recherche d'une source appropriée, je trouve les codes de communication de téléscripteur par Gil Smith qui en dit assez pour placer cela à la fin des années 1960 (démontrant que l'origine est également pré-Unix):
Cela était bien connu, en raison des problèmes d'échange de fichiers entre différents encodages tels que ASCII et EBCDIC où il y avait encore des imprimantes capables de restituer des flèches vers le haut comme telles longtemps après que le caractère n'existait plus en ASCII.
la source
^
explique également pourquoi ce caractère a été utilisé comme opérateur de canal dans le shell Unix d'origine (transmet l'idée de données circulant d'une commande à une autre). Le shell Bourne est toujours considéré^
comme un opérateur de tuyau alternatif (je suppose pour une compatibilité descendante avec le shell Thomson).^I
, 0x89 commeM-^I
, 0xc9 commeM-I
, 0xe9 commeM-i
. Le savez-vous maintenant si un personnage a déjà été utilisé pour représenter Meta à la place deM-
?