¿Cómo elimino mis comandos rápidamente?

168

Yo uso terminal para casi todas las tareas. Digamos que he ingresado un comando enorme como este:

sudo a-huge-command

¿Cuál es la forma más fácil de eliminar todo el comando con un solo acceso directo, en lugar de seguir backspacepresionando la tecla?

Soy un novato de Ubuntu que busca usar Ubuntu de manera profesional.

hombre murciélago
fuente
13
También vale la pena señalar que se puede establecer bash(y varias otras conchas) para entender las claves VI set -o vi. A continuación, podría hacerlo esc, dd(o de otro modo editar / reemplazar ya que podría producir en vi [m]).
Wayne Werner
66
Inicio, '#', Enter
Alistair Buxton
55
este es un truco barato, pero para lo que vale, generalmente solo presiono la flecha hacia arriba hasta que llego a un comando realmente corto (por ejemplo, ls) y luego retrocedo; esto generalmente solo es un par de pulsaciones de teclas, por lo que no es tan grande ' acuerdo.
KennyPeanuts
CTRL <- pulsado un par de veces generalmente me permite volver al comienzo de mi consulta ... ¿es esto lo que quieres decir?
marc-andre benoit

Respuestas:

177

Use Ctrl+ Upara cortar el texto desde la posición del cursor hasta el comienzo de la línea de comando. Más tarde, si lo desea, use Ctrl+ Ypara pegar el texto cortado.

Si solo desea descartar la línea de comando actual y obtener un nuevo mensaje limpio, presione Ctrl+ C.

Para obtener más información, consulte la documentación de Ubuntu para usar el terminal

Eric Carvalho
fuente
Esta respuesta funciona tanto para bash (predeterminado de Ubuntu) como para tsch.
Nick
¿Pensé que dash era el predeterminado de Ubuntu?
Chris
15
dashes el intérprete predeterminado para los /bin/shcomandos. bashes el inicio de sesión predeterminado y el shell TTY.
darvids0n
99
Me parece Ctrl + Cun mal hábito, ya que a menudo envío accidentalmente señales a los programas con su propio aviso, matándolos y perdiendo mi progreso y / o impulso.
user606723
111

Ctrl+ Udebería ayudarte.

A continuación se presentan el resto de las opciones disponibles. Agarrado de aquí

UNIX comprende varios comandos de teclas de control, comandos que ingresa manteniendo presionada la tecla de control (ctrl) mientras pulsa una segunda tecla

CTRL+ S- congela la pantalla y detiene cualquier visualización en la pantalla (equivalente a una tecla sin desplazamiento) (a veces toma un momento para funcionar)

CTRL+ Q- desbloquea la pantalla y permite que continúe la visualización de la pantalla

CTRL+ C- interrumpe un programa en ejecución

CTRL+ \- igual que CTRL - C pero más fuerte (usado cuando el terminal no responde)

CTRL+ Z- suspende un programa en ejecución (use el comando fg para continuar el programa, consulte s $

CTRL+ H- elimina el último carácter escrito

CTRL+ W- elimina la última palabra escrita

CTRL+ U- elimina la última línea escrita

CTRL+ R- busca texto del historial

CTRL+ D: finaliza la entrada de texto para muchos programas UNIX, incluidos el correo y la escritura.

Nota:

Cuando borramos usando CTRL+ Wo CTRL+ U, también estamos realizando una operación de "corte" (edición) (borrar) (borrar y almacenar en el búfer / portapapeles). Para pegar (extraer) la cadena en el búfer / portapapeles, use CTRL+ Y.

devav2
fuente
77
En realidad, Ctrl-R busca texto del historial.
Eric Carvalho
@EricCarvalho Tienes razón. Eliminando esa opción de la respuesta.
devav2
2
Estos son códigos de control genéricos de UNIX. El terminal predeterminado de ubuntu está basado en bash, que es diferente.
OrangeDog
Ctrl-U elimina del cursor al comienzo de la línea. A menudo lo uso colocando el cursor justo antes de los argumentos de un comando del historial. De esa manera, puedo escribir un nuevo comando usando los mismos argumentos, como cambiar menos archivo a archivo kate para poder editar el archivo después de haberlo revisado para ver si se necesitan modificaciones.
Joe
1
@OrangeDog: están bien. Utilizo todo esto en mi terminal bash-bashed de Ubuntu, con la excepción de CTR- \ one.
belacqua
61

Normalmente estoy usando Alt+ Backspace. Si está utilizando bash, esto le permitirá eliminar hasta que el carácter especial anterior ( /, ;, , etc.). Si está utilizando zsh, también eliminará las barras y los puntos y comas. Es mucho más rápido que simplemente golpear Backspace.

En bash, esto es diferente de Ctrl+ wen el sentido de que Ctrl+ welimina la palabra anterior donde Alt+ Backspaceelimina hasta que se encuentre el carácter especial anterior. En zsh, ambas combinaciones de teclas hacen lo mismo

Exeleration-G
fuente
8
Ctrl + W hace lo mismo.
hytromo
Sin embargo, no funcionará para terminales como rxvt.
sqram
1
@lyrae Para mí funciona perfectamente en rxvt, aunque no en xterm. Y solo funciona si set -o emacsestá configurado.
Marco
Yo uso ALT+Backspacetan bien como CTRL+C. Esto funciona en cualquier Linux. :)
tftd
@hakermania: No, es diferente. Ctrl + w borra una palabra y Alt + Retroceso borra hasta que el carácter especial anterior ( /, ;``, etc).
trabajo en
35

Aquí hay una lista de métodos abreviados de teclado que se pueden usar con el bashshell.

Ctrl + A    Go to the beginning of the line you are currently typing on
Ctrl + E    Go to the end of the line you are currently typing on
Ctrl + L    Clears the Screen, similar to the clear command
Ctrl + U    Clears the line before the cursor position. If you are at the end of the line, clears the entire line.
Ctrl + H    Same as backspace
Ctrl + R    Lets you search through previously used commands
Ctrl + C    Kill whatever you are running or start a new prompt
Ctrl + D    Exit the current shell
Ctrl + Z    Puts whatever you are running into a suspended background process. fg restores it.
Ctrl + W    Delete the word before the cursor
Ctrl + K    Clear the line after the cursor
Ctrl + T    Swap the last two characters before the cursor
Esc + T     Swap the last two words before the cursor
Alt + F     Move cursor forward one word on the current line
Alt + B     Move cursor backward one word on the current line
Tab         Auto-complete files and folder names

Lo que desea hacer se logra con Ctrl+ Co Ctrl+ Ual final de la línea.

OrangeDog
fuente
Esta es la lista más completa, aunque la mejor respuesta es Ctrl+Co ( Ctrl+E Ctrl+U)
Nueva Alejandría
¿Cuántos en la lista son aplicables a tcsh, que me interesan?
TCSGrad
@ shan23 Lea la sección "Comandos del editor" man tcsho utilice bindkey -l. Parece que es muy diferente.
OrangeDog
Tenga en cuenta que algunos de estos fallarán si está utilizando enlaces vi para la línea de lectura de bash (u otro shell). Esto debería aplicarse principalmente a tcsh también; Estas fiestas anteriores. bash también incorporó muchos atajos de historia agradables de csh / tcsh.
belacqua
25

Alt+ #(es decir, Alt+ Shift+ 3) comentará el comando actual y continuará en la siguiente línea.

Por ejemplo, si escribe t, e, s, t, Alt+ #, obtendrá:

you@computer$ #test
you@computer$ 

Si desea obtener su comando de edad posterior, puede pulsar la flecha hacia arriba y eliminar el carácter almohadilla ( Up, Home, Deleteo Up, Ctrl+ A, Delete).

Creo que es una característica de GNU Readline , ya que funciona en Bash, Python y MySQL.

Bola de nieve
fuente
22

Ctrl+ C- además de interrumpir los comandos en ejecución, también se puede usar para "interrumpir" la entrada de la línea de comandos.

En contraste con el Ctrl+ U, aún verá lo que ha escrito, pero su cursor saltará a la nueva línea y obtendrá un mensaje de línea de comando vacío.

Vilmantas Baranauskas
fuente
44
Prefiero esto simplemente debido a la memoria muscular, y aún puede copiar / pegar cualquier cosa importante porque la línea de comando abortada permanece allí.
ish
8

El readlineacceso directo Bash Ctrl+ X+ Ees muy útil cuando trabajas en la línea de comandos. Si está en el proceso de ingresar un comando largo y decide que desea abrirlo en su editor de texto predeterminado, todo lo que tiene que hacer es usar el acceso directo.

Hace uso de la readlinebiblioteca de Bash y este acceso directo particular se llama edit-and-execute-command. Puede configurar su editor predeterminado colocando export EDITOR="/usr/bin/vi"en ~/.bashrco ~/.bash_aliases.

Ingrese bind -Ppara ver sus readlineenlaces actuales y consulte man readlinelas páginas de manual de Ubuntu en línea para obtener más información.


fuente
7

También uso Esc+ Backspacepara eliminar todos los caracteres anteriores hasta un carácter especial. Esto es lo mismo es Alt+ Backspace. Útil si solo está eliminando algunas palabras a la vez.

jytou
fuente
3

Para vicombinaciones de teclas

Cuando usas un vimapa clave como bashcon set -o vio zshcon bindkey -v:

Modo de inserción

Es la misma pulsación de tecla que en el modo predeterminado / emacs:

Ctrl+U

eliminar del formulario la posición actual al inicio de la línea. Por lo tanto, elimina toda la línea si el cursor está al final.

Modo normal

Hay varias formas de eliminar la línea en dos pulsaciones de teclas:

Eliminar linewise dd, con el recuento predeterminado de una línea:

dd

que es el más simple en términos de teclas tocadas.

Otra forma es: Ir al inicio de la línea con ^y eliminar al final de la línea con D:

^D

Ambos eliminan la línea completa, no solo a la izquierda, como Ctrl+ Uen el modo de inserción, o la variante bleow.

Si actualmente está al final de la línea, por lo que no necesita eliminar nada a la derecha, esto también haría:

Eliminar desde aquí d, al inicio de la línea ^:

d^

Puede usar todo esto desde el modo de inserción, primero necesita el escape habitual para pasar al modo normal. Por ejemplo, para eliminar toda la línea del modo de inserción, use:

Escdd

Volker Siegel
fuente