ChatGPT解决这个技术问题 Extra ChatGPT

How do I clear/delete the current line in terminal?

If I'm using terminal and typing in a line of text for a command, is there a hotkey or any way to clear/delete that line?

For example, if my current line/command is something really long like:

> git log --graph --all --blah..uh oh i want to cancel and clear this line <cursor is here now>

Is there a hotkey or command to go from the above to:

>

?

Usually I will press the ↓ key, and if my current line is a brand new one on the history, that will clear it. But if I'm going through my command history via the ↑ key and start editing or using those commands, ↓ will only change the prompt to the next newest command in history, so it doesn't work here unless I press ↓ multiple times.


N
Norman Lin

You can use Ctrl+U to clear up to the beginning.

You can use Ctrl+W to delete just a word.

You can also use Ctrl+C to cancel.

If you want to keep the history, you can use Alt+Shift+# to make it a comment.

Bash Emacs Editing Mode Cheat Sheet


The line deleted by Ctrl-U is recallable with Ctrl-Y, too.
Wut? So cool thanks keks & kev, ⌃+U is delete all before Cursor, ⌃+K is delete all after Cursor, ⌃+A is to go to the beginning of the line. So technically ⌃+C is the best solution for the Question
Alt-Shift-# does not work? thought the others do. Alt-Shift-# prints a > character on the terminal
U/A and Y is more like a cut-paste. Try doing Ctrl+Y multiple times.
@LưuVĩnhPhúc ESC is it's own modifier key in bash. It's used for things like cancelling history navigation (CTRL+r), or swapping the last two words behind the cursor (ESC+t).
J
J4cK

Just to summarise all the answers:

Clean up the line: You can use Ctrl+U to clear up to the beginning.

Clean up the line: Ctrl+E Ctrl+U to wipe the current line in the terminal

Clean up the line: Ctrl+A Ctrl+K to wipe the current line in the terminal

Cancel the current command/line: Ctrl+C.

Recall the deleted command: Ctrl+Y (then Alt+Y)

Go to beginning of the line: Ctrl+A

Go to end of the line: Ctrl+E

Remove the forward words for example, if you are middle of the command: Ctrl+K

Remove characters on the left, until the beginning of the word: Ctrl+W

To clear your entire command prompt: Ctrl + L

Toggle between the start of line and current cursor position: Ctrl + XX


note ctrl-k deletes everything between the cursor and the end of the line.
Remove next word: Alt + D
Alt + D does not work thats why I have not include it :(
CTRL + L clears the screen but keeps what has been typed in the current command line.
Ctrl + Alt + > moves to the end of the input history which is perfect when you want to cancel searching the history.
J
Justin

I have the complete shortcuts list:

Ctrl+a Move cursor to start of line Ctrl+e Move cursor to end of line Ctrl+b Move back one character Alt+b Move back one word Ctrl+f Move forward one character Alt+f Move forward one word Ctrl+d Delete current character Ctrl+w Cut the last word Ctrl+k Cut everything after the cursor Alt+d Cut word after the cursor Alt+w Cut word before the cursor Ctrl+y Paste the last deleted command Ctrl+_ Undo Ctrl+u Cut everything before the cursor Ctrl+xx Toggle between first and current position Ctrl+l Clear the terminal Ctrl+c Cancel the command Ctrl+r Search command in history - type the search term Ctrl+j End the search at current history entry Ctrl+g Cancel the search and restore original line Ctrl+n Next command from the History Ctrl+p previous command from the History


Sorry, But I have provided all the useful shortcut keys, In which 7,8,9,10,11,14,16,17 are the clear/delete short cut keys which we can use as per requirement.
It should be mentioned that CTRL + L (16.) preserves the content of the current command line.
on windows it seems you need to use Ctrl+Shift+A to go to the start of line
It is missing Ctrl+h: delete the character before the cursor
O
Oliver Salzburg

Ctrl+A, Ctrl+K to wipe the current line in the terminal. You can then recall it with Ctrl+Y if you need.


8
8c6b5df0d16ade6c

Another nice complete list:

TERMINAL Shortcuts Lists:

Left            Move back one character
Right           Move forward one character
Ctrl+b          Move back one character
Ctrl+f          Move forward one character

Alt+Left        Move back one word
Alt+Right       Move forward one word
Alt+b           Move back one word
Alt+f           Move forward one word

Cmd+Left        Move cursor to start of line
Cmd+Right       Move cursor to end of line
Ctrl+a          Move cursor to start of line
Ctrl+e          Move cursor to end of line

Ctrl+d          Delete character after cursor
Backspace       Delete character before cursor

Alt+Backspace   Delete word before cursor
Ctrl+w          Delete word before cursor
Alt+w           Delete word before the cursor
Alt+d           Delete word after the cursor

Cmd+Backspace   Delete everything before the cursor
Ctrl+u          Delete everything before the cursor
Ctrl+k          Delete everything after the cursor

Ctrl+l          Clear the terminal

Ctrl+c          Cancel the command
Ctrl+y          Paste the last deleted command
Ctrl+_          Undo

Ctrl+r          Search command in history - type the search term
Ctrl+j          End the search at current history entry and run command
Ctrl+g          Cancel the search and restore original line

Up              previous command from the History
Down            Next command from the History
Ctrl+n          Next command from the History
Ctrl+p          previous command from the History

Ctrl+xx         Toggle between first and current position

b
bluTaz

or if your using vi mode, hit Esc followed by cc

to get back what you just erased, Esc and then p :)


You can enable vi mode by echo 'set editing-mode vi' >> ~/.inputrc. Also works in places like python interpreter prompts and some SQL clients
O
Oliver Salzburg

I'm not sure if you love it but I use Ctrl+A (to go beginning the line) and Ctrl+K (to delete the line) I was familiar with these commands from emacs, and figured out them accidently.


O
Oliver Salzburg

An alternative to Ctrl+A, Ctrl+K is Ctrl+E, Ctrl+U.


C
Cyrus

Ctrl+u: move up to the beginning of your line to a ring buffer

Ctrl+k: move up to the end of your line to a ring buffer

Ctrl+w: move characters and (multiple) words left from your cursor to a ring buffer

Ctrl+y: insert last entry from your ring buffer and then you can use Alt+y to rotate through your ring buffer. Press multiple times to continue to "previous" entry in ring buffer.


S
Sk8erPeter

CTRL+R and start typing to search for previous commands in history. Will show full lines. CTRL+R again to cycle.


B
Benjamin W.

To delete the whole line no matter where the cursor is, you can use the kill-whole-line command, but it is unbound by default. It can be bound to, for example, Ctrl+Alt+K by inserting

"\e\C-k": kill-whole-line

into your Readline init file (conventionally ~/.inputrc).

Various remarks:

To avoid accidentally re-assigning a key sequence that is already in use for something else, you can check all your bindings with bind -P. Check for the suggested binding with bind -P | grep '\\e\\C-k'

The Readline init file name is is taken from the shell variable INPUTRC. If it is unset, the default is ~/.inputrc, or (if that doesn't exist) /etc/inputrc. Notice that if you have ~/.inputrc, /etc/inputrc will be ignored.

To reload your Readline init file, you can use Ctrl+X Ctrl+R.

Links to relevant manual sections: Readline Init File Readline killing and yanking commands The bind builtin

Readline Init File

Readline killing and yanking commands

The bind builtin


J
Jose1755

In order to clean the whole line (2 different ways):

Home , Ctrl+K

End , Ctrl+U


J
Josh Correia

Ctrl+W will clear the word to the left.


P
PickBoy

Add to the list:

In Emacs mode, hit Esc, followed by R, will delete the whole line.

I don't know why, just happens to find it. Maybe it's not used for delete line but happens to have the same effect. If someone knows, please tell me, thanks :)

Works in Bash, but won't work in Fish.


It's the revert-line readline command: "Undo all changes made to this line". It's bound, by default, to M-r (Meta-R), which can be both Alt-R or Esc R. This means it's not actually deleting the line, only when it was empty to begin with; if you scroll back in your command history and change a command, then issue revert-line, it will change back to the command it was originally and not delete the line.
m
matt salmon

Alt+# comments out the current line. It will be available in history if needed.


H
High Performance Rangsiman

Ctrl+Alt+Backspace for deleting the backward words from the end of the line

Ctrl+Delete for deleting the forward words from the beginning of the line