Línea de comando bash vacía

4

Estoy buscando una manera de eliminar la línea de comando ingresada actualmente sin perder segundos en la Backspacetecla.

Por ejemplo, desplacé el historial de bash y tengo una larga línea de comando que se ejecutaría cuando presionara Enter:

~$ aptitude search openssl | grep dev

Pero ahora decido que no quiero ejecutar este comando. ¿Puedo obtener un mensaje vacío rápidamente sin eliminar toda la línea Backspace? En el cmd de Windows solo puede presionar Escapey desaparecerá. Este comportamiento sería lo que quiero.

vobject
fuente

Respuestas:

7

Presionando Ctrl+ Uvaciará la línea actual.

Es el carácter predeterminado de matar en la mayoría de los terminales y borra la línea actual (desde el cursor hasta el comienzo). El comando stty se puede usar para obtener o establecer su valor.

[dave@hal9000 ~]$ stty -a
speed 38400 baud; rows 23; columns 75; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?;
eol2 = M-^?; swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
...
[dave@hal9000 ~]$ stty kill ^T # Set it to Ctrl-T

Sea como sea, werasesignifica borrado de palabras, por lo que Ctrl+ Wborra la palabra a la izquierda del cursor.

Janne Pikkarainen
fuente
Gracias, eso lo hizo. Ctrl-u elimina todos los caracteres antes de la posición del cursor.
vobject
1
@vobject: si su cursor está dentro de la línea, Ctrl-u luego Ctrl-k (o viceversa) lo obtendrá todo.
Dennis Williamson
2

Presione Ctrl+ Cpara cancelar el comando que está ingresando y volver a un indicador simple.

Esta es una clave común en aplicaciones de modo de texto unix:

  • en programas no interactivos, Ctrl+ Cgeneralmente detiene el programa por completo y vuelve a un indicador de shell;
  • en programas interactivos que ejecutan un comando a la vez (como shells), Ctrl+ Cgeneralmente regresa al símbolo del sistema principal.
Gilles
fuente