Respuestas:
Edite (o cree) su ~/.inputrcarchivo. Agregue una línea que diga
set echo-control-characters Off
Esto le indicará a la biblioteca GNU Readline (que usa Bash) que no muestre (haga eco) ningún carácter de control en la pantalla. La configuración estará activa en todas las nuevas sesiones de Bash a partir de entonces (y en cualquier otra utilidad que use la biblioteca Readline).
Tenga en cuenta que si su sistema Unix viene con un archivo de configuración de todo el sistema para la biblioteca Readline (generalmente /etc/inputrc), entonces su archivo de configuración personal deberá incluir ese archivo:
$include /etc/inputrc
set echo-control-characters Off
Otra alternativa es hacer una copia personal del archivo de configuración de todo el sistema y luego modificarlo.
sleep 180y
~/.inputrcaún no existe, simplemente crear el archivo puede perder algunas configuraciones existentes. En mi caso, primero noté que ctrl + left y ctrl + right habían dejado de funcionar. La solución fue comenzar ~/.inputrccon esta línea $include /etc/inputrc. También es posible simplemente cp /etc/inputrc .inputrceditar y editar como se desee.
Intenta lo siguiente:
stty -echoctl
Para obtener una explicación, vea esta publicación excelente y detallada de Stéphane Chazelas que también explica algunas otras sttycaracterísticas .
Si desea que ese cambio sea permanente (y lo está utilizando bashcomo está implícito en su pregunta), entonces es mejor incluirlo en jlmg.bashrc como se indica en los comentarios (por lo que se aplica a todos los shells interactivos).
.bash_profilecomo ese archivo solo se analiza mediante shells de inicio de sesión. Debería colocarse en su .bashrclugar, por lo que es leído por todas las invocaciones interactivas.
^[[A
stty -echohacerlo. Eso, por supuesto, evitará que se haga eco de todo lo demás, lo que probablemente haga que esta respuesta sea imposible si todo lo que quería era ocultar el ^Cs.
^Csiempre fue al final, podría estar de acuerdo contigo. Pero ^Cse imprimirá donde esté el cursor, lo que puede sobrescribir un par de caracteres en cualquier parte del comando. Eso significa que si necesita copiar y pegar partes de ese comando, puede terminar con algo destrozado. Y ^Cno se reconoce tan fácilmente cuando se mira por el terminal como lo habría sido si estuviera al final del comando.
Si está tratando de encontrar una configuración que permita el eco normal (incluido echoctl) y simplemente silencie el eco de los caracteres generadores de señal, y está seguro de que debería ser posible porque lo ha visto funcionar así antes ...
Probablemente lo hayas visto de esa manera. Pero ya no es posible, debido a este compromiso :
cometer ec5b1157f8e819c72fc93aa6d2d5117c08cdc961
Active INTR / QUIT / SUSP haciendo eco en la disciplina de línea N_TTY (por ejemplo, ctrl-C aparecerá como "^ C" si stty echoctl está configurado y ctrl-C está configurado como INTR).
Linux parece ser el único sistema operativo similar a Unix (recientemente he verificado esto en Solaris, BSD y Mac OS X) que no se comporta de esta manera, y realmente extraño esto como una buena confirmación visual de la interrupción de un programa en la consola o xterm. Recuerdo esto con cariño de muchos Unix que he usado a lo largo de los años también. Llevar esto a Linux también parece una buena manera de hacerlo aún más compatible con el comportamiento estándar de Unix.
Si recuerda con cariño cómo Linux solía no hacer eco de eso ^C, la única forma de recuperar el comportamiento anterior es parcheando su núcleo. En versiones recientes, el eco de los caracteres generadores de señal se encuentra en las líneas 1215-1218 de drivers / tty / n_tty.c .
set echo-control-characters off