Por que não exibir caracteres que eu digitei em tty? [duplicado]

0

Pressione Ctrl Alt F1 para inserir TTY1. Eu trabalhei um pouco principalmente no vim, então meu shell (bash) parou de ecoar.

Se eu digitar echo abc , não será exibida.

Em vez disso, recebo uma tela como esta:

Como corrijo o problema?

    
por tmpbin 30.01.2016 / 15:50

1 resposta

4

tty s são bestas complexas, que podem funcionar em vários diferentes modos . Por exemplo. ao executar vi(1) , você não quer que os caracteres digitados apareçam na tela, o editor é responsável pelo que é exibido. Isso é chamado de modo "bruto". Normalmente você está no modo "echo", no qual o kernel envia diretamente o que é digitado para a tela. Se um programa que assumiu os detalhes da tela falhar e não restaurar o modo antes de sair, todos os tipos de coisas estranhas serão exibidas durante a digitação. Outra maneira popular de estragar as configurações é sedar um arquivo binário (por exemplo, um executável ou uma imagem) para a tela, eles são propensos a conter as seqüências de teclas para alterar as configurações ...

A maneira de restaurar as configurações de tty para o normal é executar o comando reset , que é feito por ^Jreset^J (o ^J é ctrl-J, pressione as teclas ctrl e J simultaneamente).

ctrl-J é o que C chama de '\ n', NEWLINE, termina a linha anterior que o shell estava lendo (se houver); reset é o comando; ctrl-J termina a linha e faz o shell executar o comando. Esse absurdo é necessário, pois a chave de retorno gera '\ r', CARRIE RETURN, que o modo normal traduz em '\ n' por conveniência.

Bem-vindo às complexidades das raízes do Unix.

    
por 30.01.2016 / 16:22