SE에 의해 깨진 터미널에서 복구하는 방법을 보여주는 많은 질문이 있습니다 cat /dev/urandom
. 이 문제에 익숙하지 않은 사람들을 위해-여기에 관한 내용 :
- 실행
cat /dev/urandom
하거나 이에 상응하는 항목 (예 :)cat binary_file.dat
입니다. - 쓰레기가 인쇄됩니다.
명령이 끝난 후에도 터미널이 쓰레기를 계속 인쇄한다는 점을 제외하고는 괜찮을 것입니다 ! 실제로 g ++ 출력 인 잘못 렌더링 된 텍스트의 스크린 샷입니다.
사람들이 C ++ 오류에 대해 옳았다 고 생각합니다.
일반적인 해결책은 실행하는 stty sane && reset
것이지만, 이런 일이 발생할 때마다 실행하는 것은 성가시다.
그 때문에,이 질문에서 내가 집중하고 싶은 것은 이것이 일어나는 원래의 이유 와 그러한 명령이 내려진 후 터미널이 깨지는 것을 방지하는 방법 입니다. 문제가되는 명령을 tr
또는에 파이핑하는 등의 솔루션을 찾고 있지 않습니다. xxd
실제로 프로그램을 실행 / 인쇄하기 전에 프로그램 / 파일 출력 바이너리를 알고 있어야하며, 이러한 데이터를 출력 할 때마다 기억해야하기 때문입니다. .
URxvt, PuTTY 및 Linux 프레임 버퍼에서 동일한 동작을 발견 했으므로 이것이 터미널 관련 문제라고 생각하지 않습니다. 내 주 용의자는 무작위 출력에 문자 인코딩을 뒤집는 ANSI 이스케이프 코드가 포함되어 있다는 것입니다 (사실 cat /dev/urandom
다시 실행 하면 터미널 을 깨뜨릴 가능성이 있습니다 .이 이론을 확인하는 것으로 보입니다). 이것이 맞다면이 탈출 코드는 무엇입니까? 비활성화하는 표준 방법이 있습니까?