`cat / dev / urandom`이 왜 터미널을 깨뜨 립니까?


답변:


21

터미널에서 앞뒤로 전송되는 인쇄 가능한 일반 ASCII 문자가 있지만 시스템이 터미널과 통신하는 데 사용되는 인쇄 할 수없는 문자가 많이 있습니다. 예를 들어, 프로그램이 문자 0x07( "ASCII Bell character")를 보내면 터미널에서 경고음이 울립니다.

다른 특수 시퀀스를 사용하여 표시되는 텍스트의 색상, 표시되는 방향, 창 제목, 창 크기 등을 변경할 수 있습니다.

때를

cat /dev/urandom

많은 임의의 문자가 터미널에 덤프되며 터미널은 실제 제어 코드가 아니라고 말할 수 없습니다.

프로그램이 효과적으로 임의의 명령을 터미널에 전송하기 때문에 터미널은 종종 종종 사용할 수없는 임의의 상태가됩니다.


4

임의 출력 중 일부는 ANSI 이스케이프 코드 ( http://en.wikipedia.org/wiki/ANSI_escape_code )이며 커서를 숨기거나 대체 글꼴을 선택하는 등 재미있는 작업을 수행 할 수 있습니다. 또 다른 가능성은 유니 코드 시퀀스입니다. 임의의 바이트 스트림은 유효한 UTF-8이 아니며 모든 유니 코드 인식 터미널이이를 올바르게 처리하지는 않습니다.


1

cat /dev/urandom0와 사이에 임의의 바이트 스트림을 제공 255하지만 모든 값이 유효한 텍스트 문자는 아닙니다. 터미널 창에 유효하지 않은 데이터가 공급되었으므로 터미널 응용 프로그램을 "깨진"상태로 만들 수 없었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.