Remove ^ C quando CTRL + C

24

Existe alguma maneira de remover ^C quando você clica em CTRL + C no shell incluido no Red Hat Enterprise Linux 6 ("Santiago")? Eu tenho permissão para editar meu próprio .bash_profile .

    
por Fede Gold 30.12.2016 / 14:20

3 respostas

28

Edite (ou crie) o seu arquivo ~/.inputrc . Adicione uma linha dizendo

set echo-control-characters Off

Isto instruirá a biblioteca GNU Readline (que o Bash usa) para não enviar (ecoar) quaisquer caracteres de controle para a tela. A configuração estará ativa em todas as novas sessões Bash a partir de então (e em qualquer outro utilitário que use a biblioteca Readline).

Observe que se seu sistema Unix vem com um arquivo de configuração de todo o sistema para a biblioteca Readline (geralmente /etc/inputrc ), então seu arquivo de configuração pessoal precisará incluir esse arquivo:

$include /etc/inputrc
set echo-control-characters Off

Outra alternativa é criar uma cópia pessoal do arquivo de configuração do sistema e modificá-lo.

    
por 30.12.2016 / 14:40
20

Tente o seguinte:

stty -echoctl

Para uma explicação, veja este post excelente e detalhado de Stéphane Chazelas que também explica alguns outros stty apresenta .

Se você quiser tornar essa alteração permanente (e você está usando bash como está implícito na sua pergunta), é melhor colocar em seu .bashrc conforme indicado por jlmg nos comentários (portanto, aplica-se a todos os shells interativos).

    
por 30.12.2016 / 15:44
1

Se você está tentando encontrar uma configuração que permita o eco normal (incluindo echoctl ) e apenas silencie o eco dos caracteres geradores de sinal, e você tem certeza que isso deve ser possível porque você já viu assim antes ...

Você provavelmente já viu isso. Mas não é mais possível, por causa de este commit :

commit ec5b1157f8e819c72fc93aa6d2d5117c08cdc961

Turn on INTR/QUIT/SUSP echoing in the N_TTY line discipline (e.g. ctrl-C will appear as "^C" if stty echoctl is set and ctrl-C is set as INTR).

Linux seems to be the only unix-like OS (recently I've verified this on Solaris, BSD, and Mac OS X) that does not behave this way, and I really miss this as a good visual confirmation of the interrupt of a program in the console or xterm. I remember this fondly from many Unixs I've used over the years as well. Bringing this to Linux also seems like a good way to make it yet more compliant with standard unix-like behavior.

Se você se lembra com carinho de como o Linux costumava não fazer eco de ^C , a única maneira de recuperar o comportamento antigo é corrigir seu kernel. Em versões recentes, o eco dos caracteres geradores de sinais está nas linhas 1215-1218 de drivers/tty/n_tty.c .

    
por 01.01.2017 / 23:14

Tags