Como está imprimindo um binário no meu terminal alterando o mapeamento de caracteres? [duplicado]

0

Eu acidentalmente executei cat em um binário. (Acontece).
Normalmente, eu testemunho uma enxurrada de caracteres unicode aleatórios nos quais eu pressiono Ctrl + C . Às vezes, ouço ruídos aleatórios de campainhas porque o arquivo tem '\' 'a' caracteres próximos um do outro.

Desta vez, mudou todo o meu mapeamento de caracteres (eu acho):
(a imagem mostra parte de um arquivo cat 'd antes de pressionar ctrl + C e digitar ls )

O problema é facilmente corrigido, mas fico me perguntando o que causou isso.
O que posso digitar no meu terminal para produzir o mesmo efeito?

Se for relevante, estou usando gnome-terminal e meu shell é zsh .

    
por Trevor Hickey 03.05.2017 / 01:50

1 resposta

1

Provavelmente é uma sequência de escape terminal; você poderia extraí-los e imprimi-los um por um para ver se uma determinada seqüência faz com que o borkage:

#!/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
#!/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%pre%]+)/g) {
        printf "what does '%vx' do?\n", $1;
        print $1;
        # is a listing borked or not?
        print qx(ls);
        sleep 1;
    }
}
]+)/g) { printf "what does '%vx' do?\n", $1; print $1; # is a listing borked or not? print qx(ls); sleep 1; } }
    
por 03.05.2017 / 03:16