Domanda Come posso cancellare i miei comandi velocemente?


Io uso il terminale per quasi tutte le attività. Diciamo che ho inserito un comando enorme come questo:

sudo a-huge-command

Qual è il modo più semplice per eliminare l'intero comando con una singola scorciatoia, piuttosto che continuare a colpire backspace chiave?

Sono un principiante di Ubuntu che cerca di usare Ubuntu in modo professionale.


163
2017-09-04 11:56


origine


Vale anche la pena notare che è possibile impostare bash (e diverse altre shell) per capire le chiavi vi: set -o vi. Potresti quindi farlo esc, dd (o altrimenti modificare / sostituire come si potrebbe fare in vi [m]). - Wayne Werner
Home, '#', Invio - Alistair Buxton
questo è un hack economico, ma per quello che vale, io di solito premo freccia su finché non arrivo ad un comando veramente breve (ad es. ls) e quindi backspace - questo di solito solo un paio di tratti chiave quindi non è un grosso problema. - KennyPeanuts
CTRL <- TAPpato un paio di volte di solito mi consente di tornare all'inizio della mia domanda .. è questo che intendi? - marc-andre benoit


risposte:


Uso Ctrl+U per tagliare il testo dalla posizione del cursore all'inizio della riga di comando. Più tardi, se vuoi, usa Ctrl+Y per incollare il testo tagliato.

Se vuoi solo scartare la riga di comando corrente e ottenere un nuovo hit prompt pulito Ctrl+C.

Per ulteriori riferimenti, consultare la documentazione di Ubuntu per Usando il terminale


176
2017-09-04 12:03



Questa risposta funziona sia per bash (predefinito di Ubuntu) che per tsch. - Nick
Pensavo che il dash fosse predefinito da Ubuntu? - Chris
dash è l'interprete predefinito per /bin/sh comandi. bash è il login predefinito e la shell TTY. - darvids0n
io trovo Ctrl + C essere una cattiva abitudine, dato che spesso invierò per sbaglio segnali a programmi con il loro prompt, uccidendoli e perdendo i miei progressi e / o il mio slancio. - user606723


Ctrl +  U dovrebbe aiutarti.

Di seguito sono riportate le restanti opzioni disponibili. Afferrato da Qui

UNIX comprende diversi comandi del tasto di controllo, comandi che si inseriscono tenendo premuto il tasto di controllo (ctrl) mentre si colpisce un secondo tasto

CTRL + S - blocca lo schermo e impedisce a qualsiasi visualizzazione sullo schermo di continuare (equivalente a un tasto no-scroll) (a volte richiede un momento di lavoro)

CTRL + Q - sblocca lo schermo e continua la visualizzazione dello schermo

CTRL + C - interrompe un programma in esecuzione

CTRL + \ - come CTRL - C ma più forte (usato quando il terminale non risponde)

CTRL + Z - sospende un programma in esecuzione (usa il comando fg per continuare il programma, vedi s $

CTRL + H - cancella l'ultimo carattere digitato

CTRL + W - cancella l'ultima parola digitata

CTRL + U - cancella l'ultima riga digitato

CTRL + R - cerca il testo dalla cronologia

CTRL + D - Termina l'immissione di testo per molti programmi UNIX, inclusi posta e scrittura.

Nota:

Quando cancelliamo usando CTRL + W o CTRL + U, stiamo anche eseguendo un'operazione (taglia) (taglia) (cancella in) (cancella e archivia nel buffer / negli appunti). Per incollare (strattonare) la stringa nel buffer / negli appunti, utilizzare CTRL + Y.


109
2017-09-04 12:04



In realtà ctrl-r cerca il testo dalla cronologia. - Eric Carvalho
@EricCarvalho Hai ragione. Rimozione di quell'opzione dalla risposta. - devav2
Questi sono codici di controllo generici UNIX. Il terminale ubuntu predefinito è basato su bash, che è diverso. - OrangeDog
Ctrl-U cancella dal cursore all'inizio della riga. Lo uso spesso posizionando il cursore subito prima degli argomenti di un comando dalla cronologia. In questo modo, posso digitare un nuovo comando usando gli stessi argomenti - come cambiare meno file in Kate file, così posso modificare il file dopo averlo guardato per vedere se sono necessarie delle modifiche. - Joe
@OrangeDog - Questi sono a posto - Io li uso tutti nel mio terminale bash di Ubuntu, con l'eccezione del CTR- \ one. - belacqua


Di solito sto usando alt+Backspace. Se stai usando bash, questo ti permetterà di cancellare fino al carattere speciale precedente (/, ;, , eccetera.). Se stai usando zshrimuoverà anche le barre e i punti e virgola. È molto più veloce di un semplice colpo Backspace.

In bash, questo è diverso da Ctrl+w nel senso che Ctrl+w cancella la parola precedente dove alt+Backspace cancella fino a quando non viene trovato il carattere speciale precedente. In zshentrambe le combinazioni di tasti fanno la stessa cosa


61
2017-09-04 12:00



Ctrl + W fa la stessa cosa - hytromo
Tuttavia, non funzionerà con terminali come rxvt. - sqram
@lyrae Per me funziona perfettamente in rxvt, anche se non in xterm. E funziona solo se set -o emacs è impostato. - Marco
Io uso ALT+Backspace così come CTRL+C. Funziona su qualsiasi Linux. :) - tftd
@ Khakania: No, è diverso. Ctrl + w cancella una parola e Alt + Backspace cancella fino al carattere speciale precedente (/, ;, ``, ecc.). - jobin


Ecco un listato di scorciatoie da tastiera che possono essere utilizzate con bash conchiglia.

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

Quello che vuoi fare è raggiunto da entrambi Ctrl+C o Ctrl+U alla fine della linea.


33
2017-09-04 18:42



Questa è la lista più completa, anche se la risposta migliore è Ctrl+C o (Ctrl+E  Ctrl+U) - New Alexandria
Quanti sulla lista sono applicabili a tcsh, a cui sono interessato? - TCSGrad
@ shan23 Leggi la sezione "Comandi dell'editor" di man tcsh, o usare bindkey -l. Sembra che sia molto diverso. - OrangeDog
Nota che alcuni di questi falliranno se stai usando i collegamenti vi per la readline di bash (o di un'altra shell). Questi dovrebbero valere soprattutto per tcsh; questi bash pre-datati. bash ha anche incorporato molte delle scorciatoie della cronologia di csh / tcsh. - belacqua


alt+# (Cioè, alt+Cambio+3) commenterà il comando corrente e continuerà sulla riga successiva.

Ad esempio, se si digita t, e, S, t, alt+#, otterrai:

you@computer$ #test
you@computer$ 

Se vuoi recuperare il vecchio comando, puoi premere la freccia su e cancellare il carattere cancelletto (Su, Casa, Elimina o Su, Ctrl+UN, Elimina).

Penso che sia una caratteristica di GNU Readline, dal momento che funziona in Bash, Python e MySQL.


24
2017-09-04 17:21





 Ctrl + C - oltre a interrompere i comandi in esecuzione, può essere utilizzato per "interrompere" anche l'input da riga di comando.

In contrasto con il  Ctrl + U, vedrai ancora ciò che hai digitato, ma il tuo cursore salterà sulla nuova riga e otterrai un prompt vuoto della riga di comando.


22
2017-09-04 12:16



Preferisco questo semplicemente a causa della memoria muscolare, e puoi ancora copiare / incollare qualsiasi cosa importante perché la riga di comando interrotta rimane lì. - ish


The Bash readline scorciatoia Ctrl+X+E è davvero molto utile quando si lavora sulla riga di comando. Se stai inserendo un comando lungo e decidi che vuoi aprirlo nel tuo editor di testo predefinito, tutto ciò che devi fare è usare il collegamento.

Fa uso di Bash readline libreria e questa particolare scorciatoia è chiamata edit-and-execute-command. Puoi impostare l'editor predefinito posizionando export EDITOR="/usr/bin/vi" in ~/.bashrc o ~/.bash_aliases.

accedere bind -P per vedere la tua corrente readline collegamenti e fare riferimento a man readline o il Manpage di Ubuntu online per maggiori informazioni.


8
2017-11-14 21:06





Io uso anche Esc+Backspace per cancellare tutti i caratteri precedenti fino a un carattere speciale. Questo è lo stesso è alt+Backspace. Pratico se stai cancellando solo poche parole alla volta.


7
2017-09-06 15:53





Per vi legature chiave

Quando usiamo a vi mappa chiave come in bash con set -o vi o in zsh con bindkey -v:

Modalità di inserimento

È lo stesso tasto premuto nella modalità predefinita / emacs:

Ctrl+U

cancellando forma la posizione attuale all'inizio della linea. Quindi cancella l'intera linea se il cursore è alla fine.

Modalità normale

Esistono diversi modi per eliminare la linea in due sequenze di tasti:

Elimina linewise dd, con il conteggio predefinito di una riga:

dd

che è il più semplice in termini di tasti toccati.

Un altro modo è: Vai all'inizio della linea con ^e cancella alla fine della riga con D:

^D

Entrambi eliminano l'intera linea, non solo a sinistra, come Ctrl+U in modalità di inserimento o la variante bleow.

Se sei attualmente alla fine della linea, quindi non devi cancellare nulla a destra, questo farebbe anche:

Elimina da qui d, all'inizio della linea ^:

d^

È possibile utilizzare questi tutti dalla modalità di inserimento, è necessario prima la solita fuga per passare alla modalità normale. Ad esempio per eliminare l'intera riga dalla modalità di inserimento, utilizzare:

Escdd


3
2017-09-15 03:48