xterm에서 실행 중인 쉘을 입력 echo -e '\eZ'
하고 Enter를 누르면 터미널 에뮬레이터가 암호화된 코드를 인쇄하는 것을 볼 수 있습니다 1;2c
. 이는 xterm이 VT100 제어 순서 \eZ
( ESC Z
터미널 ID 반환)를 해석하고 그에 따라 작동함을 나타내는 것 같습니다.
이제 ESC Z
동일한 콘솔을 누르면 아무 일도 일어나지 않습니다. 이는 키보드를 사용하여 직접 제어 문자를 보낼 수 없다는 뜻인가요?
CTRL s
(제어 흐름)을 누르면 를 누를 때까지 콘솔 출력이 중지되기 때문에 여기서 무슨 일이 일어나고 있는지 잘 모르겠습니다 CTRL q
. 그렇다면 왜 CTRL s/q
작동하지만 작동하지 않습니까 ESC Z
?
답변1
VT100은 전송된 문자 시퀀스에 응답합니다.산출. 따라서 에코 문자는 터미널이 이를 출력으로 처리하므로 유효합니다. 문자를 입력하면 터미널은 수신 컴퓨터가 문자를 에코할 때만 응답합니다. 일반적인 쉘은 ESC를 반영하지 않지만 ESC를 일부 대화형 입력 명령의 접두어로 해석합니다. 실행 cat
하고 ESC Z RETURN을 입력하면 일반적인 VT100 응답이 표시됩니다.
답변2
또는 일반적으로 먼저 키보드에서 CTL-V를 눌러 ESC를 사용하는 대신 ESC를 직접 전달하고 싶다고 터미널에 알릴 수 있습니다. 물론, 여전히 에코를 다시 받아야 하므로 이 경우 반드시 도움이 되는 것은 아니지만 VIM에서 파일을 편집하고 이스케이프 코드를 포함하려는 경우에는 그렇게 하는 편리한 방법입니다.