コマンドをすばやく削除するにはどうすればよいですか?


168

ほとんどすべてのタスクに端末を使用しています。このような巨大なコマンドを入力したとしましょう:

sudo a-huge-command

backspaceキーを押し続けるのではなく、単一のショートカットでコマンド全体を削除する最も簡単な方法は何ですか?

私はUbuntuをプロの方法で使用したいUbuntu初心者です。


13
また、bashviキーを理解するように設定(および他のいくつかのシェル)できることに注意する価値がありますset -o vi。あなたが行うことができescdd(またはその他の編集を/あなたはviの[M]で行うことができますよう置き換えます)。
ウェインワーナー

6
ホーム、「#」、入力
アリステアバクストン

5
これは安価なハックですが、価値があることのために、私は通常、本当に短いコマンド(たとえば、ls)に到達するまで上矢印を押します-そして、バックスペース-これは通常、数回のキーストロークだけなのでそれほど大きくありません'取引。
ケニーピーナッツ

CTRL <-数回タップすると、通常、クエリの先頭に戻ります。これはどういう意味ですか?
MARC-アンドレブノワ

回答:


177

Ctrl+ Uを使用して、カーソル位置からコマンドラインの先頭までテキストを切り取ります。後で、必要に応じて、Ctrl+ Yを使用してカットテキストを貼り付けます。

現在のコマンドラインを破棄して新しいクリーンプロンプトを取得する場合は、Ctrl+を押しますC

詳細については、ターミナルの使用に関するUbuntuのドキュメントを参照してください。


この回答は、bash(Ubuntuのデフォルト)とtschの両方で機能します。
ニック

ダッシュはUbuntuのデフォルトだと思いましたか?
クリス

15
dash/bin/shコマンドのデフォルトのインタープリターです。bashデフォルトのログインおよびTTYシェルです。
darvids0n

9
Ctrl + Cは悪い習慣であることがわかります。なぜなら、私はしばしば誤って自分のプロンプトでプログラムに信号を送り、それらを殺し、私の進行や勢いを失うからです。
user606723

111

Ctrl+ Uはあなたを助けるはずです。

以下は利用可能な残りのオプションです。ここからつかんだ

UNIXは、いくつかのコントロールキーコマンド、コントロールキー(ctrl)を押しながら2番目のキーを押すことで入力するコマンドを理解します。

CTRL+ S-画面をフリーズし、画面上の表示の継続を停止します(非スクロールキーに相当)(作業に時間がかかる場合があります)

CTRL+ Q-画面をフリーズ解除し、画面表示を続行します

CTRL+ C-実行中のプログラムを中断します

CTRL+ \-CTRL-Cと同じですが、より強力です(端末が応答しない場合に使用)

CTRL+ Z-実行中のプログラムを一時停止します(fgコマンドを使用してプログラムを続行します。s$を参照してください

CTRL+ H-最後に入力した文字を削除します

CTRL+ W-最後に入力した単語を削除します

CTRL+ U-最後に入力した行を削除します

CTRL+ R-履歴からテキストを検索します

CTRL+ D-メールや書き込みを含む多くのUNIXプログラムのテキスト入力を終了します。

注意:

CTRL+ WまたはCTRL+ を使用して削除する場合U、(編集)「カット」(ヤンクイン)操作(削除およびバッファー/クリップボードへの保存)も実行します。バッファー/クリップボードに文字列を貼り付ける(ヤンクする)には、CTRL+を使用しますY


7
実際、ctrl-rは履歴からテキストを検索します。
エリック

@EricCarvalhoあなたは正しい。回答からそのオプションを削除します。
-devav2

2
これらは汎用UNIX制御コードです。デフォルトのubuntu端末はbashベースですが、これは異なります。
OrangeDog

Ctrl-Uは、カーソルから行の先頭までを削除します。私はよく、履歴からコマンドの引数の直前にカーソルを置いて使用します。そうすれば、同じ引数を使用して新しいコマンドを入力できます-少ないファイルをkateファイルに変更するなど、編集が必要かどうかを確認するためにファイルを確認した後にファイルを編集できます。
ジョー

1
@OrangeDog-これらは問題ありません-私はUbuntuのbash-bashed端末でこれらすべてを使用しますが、CTR- \を除きます。
ベラク

61

私は通常Alt+ を使用していBackspaceます。あなたが使用している場合bash、これは、前の特殊文字(刚性削除できるようになる/;、など)。を使用している場合zsh、スラッシュとセミコロンも削除されます。ただ打つよりもずっと速いですBackspace

bash、これは異なっているCtrl+ wの意味でCtrl+は、w前の単語のwheres削除Alt+はBackspace、前の特殊文字が発見されるまで、削除されます。ではzsh、両方のキーの組み合わせが同じことを行います


8
Ctrl + Wは同じことをします。
-hytromo

ただし、rxvtなどの端末では機能しません。
sqram

1
@lyrae私にとっては、xtermではありませんが、rxvtで完全に動作します。set -o emacsが設定されている場合にのみ機能します。
マルコ

ALT+Backspace同様に使用しますCTRL+C。これはどのLinuxでも動作します。:)
tftd

@hakermania:いいえ、違います。Ctrlキー+ wは単語を削除し、Altキー+ Backspaceキーは、前の特殊文字(まで削除し/;``、など)。
jobin

35

以下は、シェルで使用できるキーボードショートカットのリストですbash

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

あなたがしたいことは、行末のCtrl+ CまたはCtrl+のいずれかによって達成されますU


これは最も完全なリストですが、最良の答えはCtrl+Cまたは(Ctrl+E Ctrl+U)です
新しいアレクサンドリア

私が興味を持っているtcshに適用できるリストの数は?
TCSGrad

@ shan23の「エディターコマンド」セクションを読むman tcshか、を使用しますbindkey -l。それは非常に異なっているように見えます。
OrangeDog

bash(または別のシェル)のReadlineにviバインディングを使用している場合、これらの一部が失敗することに注意してください。これらは主にtcshにも適用されるはずです。これらの既成のbash。bashは、csh / tcshからの素晴らしい歴史のショートカットの多くも取り入れました。
ベラク

25

Alt+ #(つまり、Alt+ Shift+ 3)は、現在のコマンドをコメント化し、次の行に進みます。

たとえば、次のように入力しtestAlt+ #、あなたが得られます。

you@computer$ #test
you@computer$ 

あなたが戻ってあなたの古いコマンドを取得したい場合は、上矢印を押すことができ、ハッシュ文字を削除(UpHomeDeleteまたはUpCtrl+ ADelete)。

Bash、Python、MySQLで動作するため、GNU Readlineの機能だと思います。


22

Ctrl+ C-実行中のコマンドの中断に加えて、コマンドライン入力を「中断」するためにも使用できます。

Ctrl+ とは対照的に、U入力した内容は表示されますが、カーソルは新しい行にジャンプし、空のコマンドラインプロンプトが表示されます。


4
私は単に筋肉の記憶のためにこれを好みます、そして、中止されたコマンドラインがそこにとどまるので、あなたはまだ重要なものをコピー/ペーストできます。
っぽい

8

Bash readlineショートカットCtrl+ X+ Eは、コマンドラインで作業しているときに非常に便利です。長いコマンドを入力しているときに、代わりにデフォルトのテキストエディターで開くことを決定した場合は、ショートカットを使用するだけです。

Bashのreadlineライブラリを利用し、この特定のショートカットはと呼ばれますedit-and-execute-command。またはに配置export EDITOR="/usr/bin/vi"して、デフォルトのエディターを設定できます。~/.bashrc~/.bash_aliases

入力bind -Pあなたの現在見ることreadlineのバインディングをしてを参照するman readlineか、オンラインUbuntuのmanページの詳細については。


7

また、Esc+ Backspaceを使用して、前の文字を特殊文字まで削除します。これはAlt+ Backspaceです。一度にいくつかの単語を削除する場合に便利です。


3

以下のためのviキーバインディング

usinときviのようにキーマップbashを持つset -o viかでzshとしbindkey -v

挿入モード

デフォルト/ emacsモードと同じキーストロークです。

Ctrl+U

現在の位置から行の先頭までを削除します。そのため、カーソルが最後にある場合、行全体を削除します。

ノーマルモード

2つのキーストロークで行を削除するには、複数の方法があります。

ddデフォルトの1行でlinewiseを削除します。

dd

タッチされたキーの点で最も簡単です。

別の方法は次のとおりです。で行の先頭に移動し、行^の末尾まで削除しDます:

^D

これらは両方とも、挿入モードのCtrl+のように、左だけでなく、行全体を削除しUます。

あなたが現在行末にいるので、あなたが右に何も削除する必要がないなら、これはまたするでしょう:

ここから削除してd、行の先頭に移動します^

d^

これらはすべてインセットモードから使用できます。通常モードに移行するには、まず通常のエスケープが必要です。たとえば、挿入モードから行全体を削除するには、次を使用します。

Escdd

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.