Comecei a usar o console Linux há muito tempo, mas nunca me questionei sobre o caractere circunflex, também conhecido como circunflexo ( ^
). Gostaria de perguntar por que é usado como um substituto para a palavra Ctrl
.
Pensei nisso outro dia enquanto estava usando o nano e também procurei ver se havia algumas respostas na internet, mas o que encontrei foram apenas perguntas sobre "o que é" e "o que representa".
Existem algumas razões históricas? Ou vem de alguma convenção estranha?
history
documentation
special-characters
Giacomo Cerquone
fonte
fonte
vi
(pelo menos a uma em SunOS 3,5) utilizado um acento circunflexo / circunflexa em frente de cartas para reprecents CTRL-C, ctrl-V, etc.stty
fez e faz isso também. Por outro lado,^
funcionou como sinônimo de|
scripts de shell durante essa época, portanto, você sempre teria que fazer uma barra invertida no cursor emstty
invocações. Boa pergunta.3
/#
),^
pode ser uma abreviação visual para um tipo diferente de 'shift', por assim dizer. O fato de que, para a maioria das teclas / caracteres tipáveis, o Ctrl apenas desativa os 64 bits do caractere também pode estar relacionado -^
sendo uma abreviação paraNOT (0x40)
.Respostas:
O circunflexo (
^
) foi igualado ao caractere de seta para cima nas tele-impressoras. No momento em que o SunOS e assim por diante surgiram, essa parte já existia há mais de 10 anos. O mesmo caractere (substituição) foi usado em expressões matemáticas, por exemplo,^
para poderes (onde alguns outros podem usar**
). Também foi usado em Pascal para indicar indicadores.Usado para indicar caracteres de controle, data (pelo menos) antes de 1980. Você pode encontrá-lo na documentação do DEC, por exemplo (estava certamente em uso em meados da década de 1970 quando usei o teco. O manual Utilities de 1973 (página 927) mostra um controlCpor exemplo.
Procurando uma fonte adequada, encontro os Códigos de Comunicação de Teletypewriter de Gil Smith, que diz o suficiente para colocar isso no final dos anos 1960 (demonstrando que a origem também é pré-Unix):
Isso costumava ser bem conhecido, devido aos problemas de troca de arquivos entre codificações diferentes, como ASCII e EBCDIC, onde ainda havia impressoras capazes de renderizar setas para cima, desde que o caractere não existisse mais no ASCII.
fonte
^
também explica por que esse caractere foi usado como operador de canal no shell Unix original (transmite a ideia de dados fluindo de um comando para outro). O shell Bourne ainda é tratado^
como um operador de tubo alternativo (suponho que seja compatível com o shell Thomson).^I
, 0x89 comoM-^I
, 0xc9 comoM-I
, 0xe9 comoM-i
. Você agora se algum personagem já foi usado para representar o Meta no lugar deM-
?