16진수 조합을 기반으로 이 작은 파일을 만들었고 cat이 중단되고 cat 파일이 있는 터미널이 표시됩니다. 재설정이 더 이상 작동하지 않습니다. cat을 일종의 루프에 빠뜨릴 수 있습니까? 누군가 이것을 설명해 주시겠습니까? 아무런 문제도 발생하지 않지만, 내가 보지 못하는 몇 가지 부작용이 있을 수 있으므로 프로덕션 환경에서 실행하지 마세요.
"cat brocat" 명령을 실행하면 이를 볼 수 있습니다.
어쩌면 이것은 cat의 보안 문제일 수도 있습니다. 임의의 코드를 실행할 수 있습니까?
또 다른 예: cat /usr/bin/vi는 마지막에 발견되지 않은 일부 명령을 실행할 수 있습니다!
고양이를 더 안전하게 달릴 수 있는 방법이 있나요?
답변1
cat -v /usr/bin/vi
터미널이 처리하려고 하는 실제 제어 문자 대신 인쇄할 수 없는 문자를 ASCII 표현으로 인쇄하도록 할 수 있습니다 . 이것이 당신의 문제를 해결해줄까요?
답변2
임의의 파일을 "cat"하면 안 됩니다. 파일이 악성이 아니더라도 이는 좋지 않은 생각입니다.
예를 들어 "파일" 프로그램을 실행하여 파일 "유형"을 확인할 수 있습니다 file /usr/bin/vi
. 어쨌든 "cat"을 사용하는 것은 낮은 수준입니다. "more" 또는 "less"를 사용해 보세요. 시도 more /usr/bin/vi
하면 /usr/bin/vi: Not a text file
.
또는 "reset(1)" 명령을 사용하여 터미널을 재설정할 수 있지만 resetC-J
터미널이 원시 모드로 종료되면 문자열 "reset" 다음에 "control-J"를 입력해야 할 수도 있습니다.