Estoy hablando de los atajos de teclado que usas en la línea de comandos / terminal.
Ejemplo: Ctrl+ cque mata el proceso, Ctrl+ dque cierra la sesión, Ctrl+ zque envía el proceso al fondo ... etc.
He probado algunos y encontré que no son ni terminal (es decir gnome-terminal, xterm, konsole) específico ni cáscara (es decir bash, zsh) específico, que incluso trabajo en ttys.
Entonces, quiero saber:
- ¿Quién proporciona estos atajos?
- ¿Cómo puedo enumerarlos y modificarlos / definirlos?

bind -phacer una lista,help bindpara otrosRespuestas:
El controlador de terminal del núcleo (
termios) interpreta las teclas especiales que se pueden escribir para enviar una señal a un proceso, enviar el final del archivo, borrar caracteres, etc. Esta es la funcionalidad básica del núcleo de Unix y muy similar en la mayoría de las implementaciones de Unix y Linux.El
sttycomando muestra o establece lostermioscaracteres especiales, así como otros parámetros para el controlador de línea de terminal.Invoque
stty -apara ver los valores actuales de los caracteres especiales y otras "configuraciones de línea de terminal". En los siguientes ejemplos, puede ver queintres Ctrl+ C,eofes Ctrl+ D,suspes Ctrl+ Z. (He eliminado otra salida para mostrar solo la configuración de caracteres especiales):stty -acaracteres especiales en GNU / Linux:stty -acaracteres especiales en FreeBSD:Para cambiar el valor de un carácter especial, por ejemplo, para cambiar el carácter de interrupción de Ctrl+ Ca Ctrl+ Einvocar de
sttyesta manera (^Ees literalmente dos caracteres, el circunflejo (^) seguido de la letraE):Para obtener más información, consulte las páginas de manual para
sttyytermios. En GNU / Linux también puede mirar latty_ioctlpágina de manual.Notas:
La
intrclave ( Ctrl+ Cpor defecto), en realidad no mata el proceso, pero hace que el núcleo envíe una señal de interrupción (SIGINT) a todos los procesos dentro del grupo de procesos. Los procesos pueden hacer arreglos para capturar o ignorar la señal, pero la mayoría de los procesos finalizarán, que es el comportamiento predeterminado.La razón por la que Ctrl+ dcierra la sesión es porque el controlador de línea de terminal envía EOF (final del archivo) en la entrada estándar del shell. El shell sale cuando recibe el final del archivo en su entrada estándar.
fuente
-ase agregó la opción POSIXstty.stty intr '^E'funciona (establece) pero temporalmente y solo para el terminal / tty actual. ¿Cómo lo cambio global y permanentemente?sttyen su $ HOME / .profile o $ HOME / .bashrc o algún otro archivo de inicialización de inicio de shell.ttytty? Tal vez esa podría ser una nueva pregunta?De http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/
Atajos de edición de comandos
Atajos de recuperación de comandos
Atajos de control de comando
Comandos Bash Bang (!)
¡Bash también tiene algunas funciones útiles que usan! (explosión) para permitirle hacer algunas cosas funky con comandos bash .
fuente
^U, que sestty -amuestra definido para SIGKILL en Linux, desde bash? Preferiblemente sin definir las cosas de la línea de lectura (quizás a través de un tercer mod / meta key). Supongo que solo está sombreado por el enlace de línea de lectura ctrl + u?