터미널에서 이진 파일을 인쇄하면 문자 매핑이 어떻게 변경됩니까? [복사]

터미널에서 이진 파일을 인쇄하면 문자 매핑이 어떻게 변경됩니까? [복사]

cat실수로 바이너리를 실행했습니다 . (일어난다).
일반적으로 를 클릭하면 임의의 유니코드 문자가 많이 표시됩니다 Ctrl+C. 파일의 문자가 서로 옆에 있기
때문에 가끔 벨소리가 무작위로 들리는 경우가 있습니다 .'\' 'a'

이번에는 전체 문자 맵이 변경되었습니다(제 생각에는). (이미지는
Ctrl+C를 누르고 입력하기 전의 'd 파일의 일부를 보여줍니다) catls여기에 이미지 설명을 입력하세요.

문제는 쉽게 해결되는데 원인이 무엇인지 알고 싶습니다.
동일한 효과를 얻으려면 터미널에 무엇을 입력해야 합니까?

관련이 있는 경우 을 사용하고 있으며 gnome-terminal내 쉘은 입니다 zsh.

답변1

이는 아마도 터미널 이스케이프 시퀀스일 것입니다. 이를 추출하고 하나씩 인쇄하여 특정 시퀀스가 ​​충돌을 일으키는지 확인할 수 있습니다.

#!/usr/bin/env perl
use strict;
use warnings;

# turn off any encoding foo
use open IO => ':raw';

# "slurp" mode for whole file reads
local $/;

# for any STDIN or files given to us...
while (readline) {
    # extract ESC-followed by a number of not-ESC not-NUL characters...
    while (m/(\e[^\e\0]+)/g) {
        printf "what does '%vx' do?\n", $1;
        print $1;
        # is a listing borked or not?
        print qx(ls);
        sleep 1;
    }
}

관련 정보