터미널에 입력할 때 ^@는 어떤 키를 나타냅니까?
내 시스템이 이 키로 스팸을 받고 있으므로 이 키를 비활성화해야 합니다.
답변1
^@
키가 아니라 제어 문자를 표현한 것입니다. 이 경우 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+Space거나 입력하여 이 작업을 수행할 수 있습니다 Ctrl+@. Debian의 xterm에 있는 영국 키보드에서 이를 켰습니다 Ctrl+2(영국 키보드에서는 Shift 2 "
, 미국 키보드에서는 @).
터미널과 터미널 에뮬레이터는 NUL 문자를 무시합니다. 그것은충전재과거에는 흐름 제어가 없었을 때 애플리케이션은 이 문자를 사용하여 두 개의 다른 제어 문자 사이에 터미널 시간을 제공했습니다.
^@
NUL의 시각적 표현으로 애플리케이션과 같은 터미널에서 vim
선택된 것을 볼 수 있습니다. 당신은 또한 일반적으로 그것을 다음과 같이 생각할 것입니다.에코입력하는 동안 입력한 NUL 문자입니다. 터미널 라인 규칙이 icanon
모드 에 있고 echoctl
매개변수가 활성화된 경우 터미널 드라이버 자체에 의해 실행되거나(일반적으로 기본적으로 활성화됨, 참고자료 참조 stty -a
) 애플리케이션의 라인 편집기( 에서 readline
사용됨 )에 의해 실행됩니다.bash
답변2
그것은 문자 0, ctrl-@입니다. 예를 들어. Ctrl-A는 문자 1이고 Ctrl-M은 문자 13 또는 개행입니다.