Иногда при копировании и вставке текста с вывода команд я случайно использую Ctrl+ cвместо Ctrl+ Shift+ c.
Таким образом, командная строка интерпретирует это как ^C
...
Почему это? Почему командная строка интерпретирует controlввод как ^
?
command-line
Скажи мне почему
источник
источник
^
в качестве символа «управления» восходит к предграфическим временам, когда терминалы были только текстовыми, и я полагаю, что даже до этого, когда у нас были карточки и бумага, никаких терминалов не было. Я хотел бы знать, почему каретка была выбрана в качестве символа.Поскольку комбинации CTRL+ KEYинтерпретируются терминалом как непечатаемые символы ASCII, и, поскольку эти символы не предназначены для печати, вам необходим способ их представления.
Соглашение, вытекающее из терминалов VT с поддержкой ANSI , состоит в том, чтобы представлять CTRL+ KEYкомбинацию, представляющую CTRLс помощью caret (
^
) и KEYwith KEY.источник
При копировании и вставке в / из терминала рекомендуется использовать сочетания клавиш Ctrl+ Insertи Shift+ Insertсоответственно.
Это более традиционные сокращения для терминального использования, хотя вы заметите, что в графической среде X Ctrl+ Insertи Shift+ Insertсвязаны с теми же Ctrl+ Cи Ctrl+ V.
В большинстве терминалов Ctrl+ C(представленный как
^C
) используется для остановки выполнения процесса, поэтому вставка с таким сокращением не будет работать.Для быстрого копирования и вставки вы можете использовать основной буфер X, выделив любой текст, который вы хотите скопировать, а затем щелкнув по нему средней кнопкой мыши, куда вы хотите вставить его. Клавиатура не требуется.
источник
^C
или подобные строки появляются при нажатии CTRL + C (или CTRL + другая буква). Речь идет не о том, как правильно копировать и вставлять вещи в терминале, для чего ваш ответ будет отличным.Вы должны использовать Ctrl+, Cа не Shift+ Ctrl+ C, потому что в командной строке они делают то же самое (и Ctrl+ Cпроще, чем Shift+ Ctrl+ C). Это может быть неверно в определенных графических средах, где графический интерфейс фиксирует некоторые нажатия клавиш и делает что-то особенное, но если нажатия клавиш действительно отправляются в командную строку, то нет никакой разницы. Вот почему нажатие Ctrl+ Cможет показывать ^ C как заглавную C, а не как строчную букву C. Командная строка не делает различий, какая из них была нажата (а заглавные буквы предположительно считались более удобными для чтения). Это верно для писем; для других персонажей это Shiftможет оказать влияние.)
Нажатие Ctrl- Cотправляет код ASCII, который на 64 ниже позиции заглавной буквы в таблице ASCII (и на 96 меньше позиции строчной буквы в таблице ASCII). Таким образом, нажатие Ctrl- c(нижний регистр) отправляет код ASCII 3 (что на 64 меньше, чем заглавный Cкод ASCII 67). Во многих средах вы можете удерживать Altи затем нажимать 3на цифровую клавиатуру (а затем отпустить 3клавишу, а затем отпустить Altклавишу), и вы можете получить тот же эффект.
Что касается ^ C, ^ - это просто общеизвестное сокращение для Ctrlклавиши " ". Точно так же M- это сокращение от Altклавиши " ". Оу, да. М означает слово «Мета», которое можно ввести, удерживая Altи нажимая все, что будет дальше, или иногда нажимая Esc(и отпуская Esc), а затем нажимая все, что будет дальше. Статья Википедии о «Управляющем ключе»: раздел «Обозначения» описывает это как «Традиционное обозначение». Это также известно как нотация каретки ( статья Википедии о нотации карета , Unix StackExchange: вопрос ryvnf о нотации каретки ).
Что касается последнего вопроса, командная оболочка не «интерпретирует» что-либо как каретку. Другими словами, оболочка ничего не читает, и считает, что это карета. Происходит то, что оболочка использует хорошо известную запись каретки для вывода. В качестве другого примера вы можете увидеть хорошо известный пейджер "less", используйте символ каретки, выполнив:
dd if=/dev/zero bs=64 count=1 | less
(Текстовый редактор «nano» также использует обозначение каретки в своей онлайн-справке, включая полные экраны интерактивной справки, отображаемые после нажатия ^ G, иначе Ctrl- g.)
источник