Intereting Posts
двуличие: как создать и восстановить полную резервную копию системы Ввод нового / графического редактора в список редакторов Невозможно подключиться к Интернету в CrunchBang 10 Почему некоторые буквы или escape-последовательности не отображаются правильно в urxvt? Установка ISO, защищенного SafeDisc, на Linux Печать отсутствующих файлов из кортежа Как найти недостающие файлы между определенным диапазоном дат? Можно ли скомпилировать полную систему Linux с компилятором Intel вместо GCC? BTRFS стал неуправляемым Можно ли использовать утилиту Rename для упрощения этого скрипта, который использует Find и Mv? Используйте строки в файле для создания строки и имени файла Машина зависает, когда она попадает под место подкачки под большой нагрузкой связать MAC с IP-адресом? SSH на удаленную машину с использованием другого локального идентификатора Почему логи samba с пользователем «nobody» всегда появляются?

Что такое клавиша ^ @

Какой ключ обозначается ^ @ при вводе в терминале?

Моя система получает спам от этого ключа, поэтому я должен отключить его.

^@ – это не ключ, это представление управляющего символа. В этом случае символ NUL, с байтовым значением 0.

Если n является байтовым значением X, то байтовое значение ^X будет n ^ 0x40 .

Вы можете сказать значение байта X с:

 printf X | od -An -tu1 

или (для однобайтовых символов):

 printf '%d\n' "'X" 

Так вот:

 $ printf '%s\n' "'@" 64 $ echo "$((64 ^ 0x40))" 0 

Для ^? :

 $ printf '%s\n' "'?" 63 $ echo "$((63 ^ 0x40))" 127 

(это символ DEL).

В зависимости от терминала, вы можете войти в него, нажав Ctrl + Пробел или Ctrl + @ . На моей британской клавиатуре в xterm на Debian я получаю его по Ctrl + 2 (shift 2 – " на британской клавиатуре, но @ на американской клавиатуре).

Символ NUL игнорируется терминалами и эмуляторами терминалов. Это символ заполнения, который в старину использовался бы приложениями, чтобы дать возможность указывать конечное время между двумя другими управляющими символами, когда не было управления streamом.

Вы увидите, что ^@ в терминале в приложениях, таких как vim которые выбирают его как визуальное представление NUL. Вы также обычно видите это как эхо NUL-символа, который вы вводите при вводе. Либо самим драйвером терминала, когда дисциплина линии терминала находится в режиме echoctl параметр echoctl включен (обычно включен по умолчанию, см. stty -a ), либо редакторами строк в приложениях (как readline используемый bash ).

Это символ 0, ctrl- @. Например. Ctrl-A – это символ 1, символ Ctrl-M 13 или символ новой строки.