PuTTY에서 `cat /etc/localtime`을 실행하면 프롬프트에 "PuTTY" 스트림이 표시되는 이유는 무엇입니까?

PuTTY에서 `cat /etc/localtime`을 실행하면 프롬프트에 "PuTTY" 스트림이 표시되는 이유는 무엇입니까?

나는 무작위로 실험을 했고 cat /etc/localtimePuTTY에서 실행하는 것과 xterm에서 실행하는 것이 서로 다른 효과가 있다는 것을 발견했습니다.

예:

root@webtest:~# cat /etc/localtime
TZif2

      ▒▒Kmp▒▒ǀ▒▒▒p▒Ƀprp▒▒▒▒_Tp▒▒▒p▒A▒p▒nop▒#
▒O▒▒▒p▒▒▒ɧ▒#▒Op▒▒▒k▒p"p▒r▒p▒Pp▒2Lp▒▒p▒▒▒p▒▒p▒ȷ

답변1

다음은 FAQ입니다(퍼티용):

A.7.12 바이너리 파일을 분류하면 명령줄에 "PuTTYPuTTYPuTTY"가 표시됩니다.

그럼 그러지 마세요.

이는 설계된 동작입니다. PuTTY는 원격 서버로부터 Control-E 문자를 받으면 이를 자신을 인식하라는 요청으로 해석하여 해당 문자열이 이미 키보드에 있는 것처럼 "PuTTY" 문자열을 다시 보냅니다. 위에. Control-E는 응답을 처리하도록 준비된 프로그램에서만 보낼 수 있습니다. 터미널에 바이너리 파일을 쓰면 많은 Control-E 문자가 출력되어 이 동작이 발생할 수 있습니다. 이렇게 하지 마십시오. 이것은 나쁜 계획입니다.

영향을 완화하기 위해 응답 문자열을 비워 두도록 구성할 수 있습니다(섹션 4.3.7 참조). 그러나 터미널에 바이너리를 작성하면 여러 가지 불쾌한 동작이 발생할 수 있으므로 이는 작은 해결 방법일 뿐입니다.

PuTTY 개발자는 무언가를 복사하는 것부터 시작하지만 때로는 이유를 잊어버리기도 합니다. xterm의 응답 시퀀스(일정 기간 동안)는 "xterm"을 표시합니다. 하지만 이는 1999년에 사라졌다.:

기본 응답 응답을 빈 문자열로 변경합니다.

그럼에도 불구하고 xterm이 (기본적으로) 이 작업을 수행한다고 말하는 사람들을 찾을 수 있습니다.

터미널이 응답 응답을 보내면 결과는 다음과 같습니다.타이핑된이 정보. 쉘(또는 다른 프로그램)은 이러한 문자를 표시합니다.

답변2

/etc/localtime텍스트 파일이 아닌 바이너리 파일에 대한 심볼릭 링크입니다. 바이너리 파일의 내용을 터미널에 덤프하면 흥미롭고 예상치 못한 결과가 발생할 수 있습니다. 특히 일부 바이너리 데이터가 터미널 제어 코드와 일치하는 경우 더욱 그렇습니다. PuTTY에는 xterm이 제공하지 않는 이름을 출력하기 위한 제어 코드가 있을 수 있습니다. 그렇지 않으면 다르게 구문 분석됩니다.

관련 정보