Я начал использовать консоль Linux давным-давно, но никогда не задавался вопросом о символе круговой рамки, или каретке ( ^
). Я хотел бы спросить, почему это используется в качестве замены слова Ctrl
.
Я думал об этом на днях, когда я использовал nano, и я также искал, чтобы найти какие-то ответы в Интернете, но я нашел только вопросы о том, «что это такое» и «что это представляет».
Есть ли исторические причины? Или это происходит из какого-то странного соглашения?
history
documentation
special-characters
Джакомо Черквоне
источник
источник
vi
(по крайней мере, тот, что в SunOS 3.5) использовал знак вставки / диафрагмы перед буквами, чтобы обозначить ctrl-C, ctrl-V и т. Д.stty
, И делает это тоже. С другой стороны, он^
работал как синоним|
сценариев оболочки в ту эпоху, так что вам всегда нужно было ставить обратную косую черту в вызовахstty
. Хороший вопрос.3
/#
), это^
может быть визуальным сокращением для, так сказать, различного рода «сдвига». Тот факт, что для большинства набираемых клавиш / символов Ctrl просто отключает 64-битный символ, также может быть связан с^
сокращениемNOT (0x40)
.Ответы:
Круговой (
^
) был приравнен к символу со стрелкой вверх на телепринтерах. Ко времени появления SunOS и т. Д. Эта часть была уже более 10 лет назад. Этот же символ (замена) использовался в математических выражениях, например,^
для полномочий (где некоторые другие могут использовать**
). Он также использовался в Паскале для указания указателей.Используется для обозначения управляющих символов, это даты (по крайней мере) до 1980 года Вы можете найти это используется в DEC документации, например (это, конечно , в использовании к середине 1970-х годов , когда я использовал TECO. The Utilities руководство с 1973 года (стр 927) показывает, controlCнапример.
В поисках подходящего источника я нахожу коды связи телетайперов от Джила Смита, в которых сказано, что это достаточно, чтобы разместить это в конце 1960-х годов (демонстрируя также, что происхождение происходит до пре-Unix):
Раньше это было хорошо известно из-за проблем обмена файлами между различными кодировками, такими как ASCII и EBCDIC, где все еще существовали принтеры, способные отображать стрелки вверх так долго, после того как в ASCII больше не существовало символа.
источник
^
также объясняет, почему этот символ использовался в качестве оператора канала в исходной оболочке Unix (передает идею передачи данных от одной команды к другой). Оболочка Борна по-прежнему рассматривается^
как альтернативный оператор канала (я полагаю, для обратной совместимости с оболочкой Томсона).^I
, 0x89 какM-^I
, 0xc9 какM-I
, 0xe9 какM-i
. А теперь, если какой-то персонаж использовался вместо МетыM-
?