Comencé a usar la consola Linux hace mucho tiempo, pero nunca me pregunté sobre el carácter circunflejo aka caret ( ^
). Me gustaría preguntar por qué se usa como reemplazo de la palabra Ctrl
.
Lo pensé el otro día mientras estaba usando nano y también busqué para ver si había algunas respuestas en Internet, pero lo que encontré fueron solo preguntas sobre "qué es" y "qué representa".
¿Hay algunas razones históricas? ¿O viene de alguna convención extraña?
history
documentation
special-characters
Giacomo Cerquone
fuente
fuente
vi
(al menos el de SunOS 3.5) usó un símbolo de intercalación / circunflejo delante de las letras para representar ctrl-C, ctrl-V, etc.stty
, y también lo hizo. Por otro lado,^
funcionó como sinónimo de|
scripts en shell durante esa época, por lo que siempre tendría que reducir la barra diagonal enstty
invocaciones. Buena pregunta.3
/#
),^
podría ser una abreviatura visual para un tipo diferente de 'shift', por así decirlo. El hecho de que para la mayoría de las teclas / caracteres que se pueden escribir, Ctrl simplemente apaga los 64 bits del personaje también puede estar relacionado,^
para abreviarNOT (0x40)
.Respuestas:
El circunflejo (
^
) se equiparó al carácter de flecha hacia arriba en las teleimpresoras. Para cuando apareció SunOS y demás, esta parte tenía más de 10 años en el pasado. El mismo carácter (reemplazo) se usó en expresiones matemáticas, por ejemplo,^
para poderes (donde otros podrían usar**
). También se usó en Pascal para indicar punteros.Utilizado para indicar caracteres de control, esta fecha (al menos) es anterior a 1980. Puede encontrarlo utilizado en la documentación de DEC, por ejemplo (ciertamente estaba en uso a mediados de la década de 1970 cuando usé teco. El manual de utilidades de 1973 (página 927) muestra un controlCpor ejemplo.
Buscando una fuente adecuada, encuentro Códigos de comunicación de teletipo de Gil Smith que dice lo suficiente como para colocar esto a fines de la década de 1960 (lo que demuestra que el origen también es anterior a Unix):
Esto solía ser bien conocido, debido a los problemas de intercambio de archivos entre diferentes codificaciones como ASCII y EBCDIC donde todavía había impresoras capaces de mostrar flechas hacia arriba, mucho después de que el carácter ya no existiera en ASCII.
fuente
^
también explica por qué ese personaje se utilizó como operador de tubería en el shell original de Unix (transmite la idea de que los datos fluyen de un comando a otro). El shell Bourne todavía se trata^
como un operador de tubería alternativo (supongo que por compatibilidad con el shell Thomson).^I
, 0x89 comoM-^I
, 0xc9 comoM-I
, 0xe9 comoM-i
. ¿Sabes si alguna vez se ha utilizado algún personaje para representar a Meta en lugar deM-
?