Komutlarımı hızlı bir şekilde nasıl silerim?


168

Neredeyse tüm işler için terminal kullanıyorum. Diyelim ki böyle büyük bir komuta girdim:

sudo a-huge-command

Tek bir kısayolla tüm komutu silmek için, backspacetuşa basmak yerine en kolay yol nedir ?

Ubuntu'yu profesyonel bir şekilde kullanmak isteyen bir Ubuntu acemiyim.


13
Bu Belirleyebileceğiniz göz önünde bulundurmak da faydalıdır bashvi tuşları anlamak için (ve diğer bazı kabuklar): set -o vi. Daha sonra yapabileceği esc, dd(veya başka şekilde düzenlemek / sen vi [m] yapabileceği şekilde değiştirin).
Wayne Werner

6
Ana Sayfa, '#', Enter
Alistair Buxton

5
Bu ucuz bir kesmek ama buna değer, ben genellikle sadece kısa bir komuta (örn. ls) ve sonra geri almak kadar sadece yukarı ok çarptı - bu genellikle sadece birkaç anahtar vuruş bu yüzden o kadar büyük değil ' anlaştık mı.
KennyPeanuts

CTRL <- birkaç kez dokunulduğunda, genellikle sorgunun başına dönmeme izin veriyor .. bu ne demek istiyorsun?
marc-andre benoit

Yanıtlar:


177

İmleç konumundan komut satırının başına kadar metni kesmek için Ctrl+ kullanın U. Daha sonra isterseniz kesilmiş metni yapıştırmak için Ctrl+ Ykullanın.

Sadece geçerli komut satırını atmak ve yeni bir temiz bilgi istemi almak istiyorsanız Ctrl+ tuşlarına basın C.

Daha fazla referans için lütfen Terminali Kullanmayla ilgili Ubuntu belgelerine bakın .


Bu cevap hem bash (varsayılan Ubuntu) hem de tsch için geçerlidir.
Nick

Dash varsayılan Ubuntu olduğunu sanıyordum?
Chris

15
dash/bin/shkomutlar için varsayılan yorumlayıcıdır . bashvarsayılan giriş ve TTY kabuğu.
darvids0n

9
Ben bulmak Ctrl + CSık sık yanlışlıkla öldürülmesi ve benim ilerleme ve / veya ivme kaybetme, kendi istemi ile programlara sinyalleri göndereceğiz beri kötü bir alışkanlık olmaya.
user606723 6:12

111

Ctrl+ Usana yardım etmeli.

Aşağıda mevcut seçeneklerin geri kalanı verilmiştir. Buradan yakalandı

UNIX birkaç kontrol tuşu komutunu anlar, ikinci bir tuşa basarken kontrol tuşunu (ctrl) basılı tutarak girdiğiniz komutları anlar.

CTRL+ S- ekranı dondurur ve ekrandaki herhangi bir gösterimin devam etmesini durdurur (kaydırma tuşlarına eşdeğer değildir) (bazen çalışmak biraz zaman alabilir)

CTRL+ Q- ekranı dondurur ve ekranın devam etmesini sağlar

CTRL+ C- çalışan bir programı durdurur

CTRL+ \- CTRL - C ile aynı ancak daha güçlü (terminal yanıt vermediğinde kullanılır)

CTRL+ Z- çalışan bir programı askıya alır (programa devam etmek için fg komutunu kullanın, bkz. s $

CTRL+ H- yazılan son karakteri siler

CTRL+ W- yazılan son sözcüğü siler

CTRL+ U- yazılan son satırı siler

CTRL+ R- geçmişten gelen metni arar

CTRL+ D- posta ve yazma dahil olmak üzere pek çok UNIX programı için metin girişini sonlandırır.

Not:

CTRL+ WVeya CTRL+ kullanarak sildiğimizde U, aynı zamanda (edit) "cut" (yank in) işlemi gerçekleştiririz (tamponla / panoda sil ve sakla). Dizeyi tampon / panoya yapıştırmak (çıkarmak) için CTRL+ kullanın Y.


7
Aslında ctrl-r, geçmişten gelen metni arar.
Eric Carvalho

@EricCarvalho Haklısın. Bu seçeneği cevaptan kaldırmak.
devav2

2
Bunlar genel UNIX kontrol kodlarıdır. Varsayılan ubuntu terminali, bash bazlıdır, ki bu farklıdır.
OrangeDog

Ctrl-U imleçten satırın başına kadar siler. Ben genellikle imleci argümanların hemen öncesinden bir komuta getirerek yerleştiririm. Bu şekilde, aynı argümanları kullanarak yeni bir komut yazabilirim - kate dosyasına daha az dosya değiştirmek gibi, böylece herhangi bir düzenlemeye gerek olup olmadığını görmek için baktıktan sonra dosyayı düzenleyebilirim.
Joe

1
@OrangeDog - Bunlar gayet iyi - Bunların hepsini Ubuntu bash-bashed terminalimde, CTR- \ one haricinde kullanıyorum.
belacqua

61

Genellikle Alt+ kullanıyorum Backspace. Eğer kullanıyorsanız bash, bu bir önceki özel karakter (e kadar silmek sağlayacak /, ;, vs.). Kullanıyorsanız zsh, eğik çizgileri ve noktalı virgülleri de kaldırır. Vurmaktan çok daha hızlı Backspace.

Olarak bash, bu farklıdır Ctrl+ wanlamda Ctrl+ wönceki kelime Nerede siler Alt+ Backspaceönceki özel karakter bulunana kadar siler. Her zshiki tuş kombinasyonu da aynı şeyi yapar.


8
Ctrl + W aynı şeyi yapar.
hytromo

Yine de rxvt gibi terminaller için çalışmaz.
sqram

1
@ lyrae Benim için xterm olmasa da, rxvt'de mükemmel çalışır. Ve sadece set -o emacsayarlanmışsa çalışır .
Marco

Kullandığım ALT+Backspaceyanı sıra CTRL+C. Bu herhangi bir linux üzerinde çalışır. :)
tftd

@hakermania: Hayır, farklı. Ctrl + W sözcük siler ve Alt + Geri önceki özel karakteri (kadar siler /, ;, ``, vb).
Jobin

35

İşte kabuk ile kullanılabilecek klavye kısayollarının bir listesibash .

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

Ne yapmak istediğinizi , satırın sonunda Ctrl+ Cveya Ctrl+ Uile yapabilirsiniz.


Bu en eksiksiz liste, en iyi cevap olmasına rağmen Ctrl+Cveya ( Ctrl+E Ctrl+U)
Yeni İskenderiye

İlgilendiğim tcsh listesinde ne kadar var?
TCSGrad

@ shan23 "Editör komutları" bölümünü okuyun man tcshveya kullanın bindkey -l. Çok farklı görünüyor.
OrangeDog

Bunların bazılarının bash (veya başka bir kabuğun) Readline'ı için vi bind kullanıyorsanız başarısız olacağını unutmayın. Bunlar çoğunlukla tcsh için de geçerli olmalıdır; bu önceden tarihli bash. bash ayrıca csh / tcsh'dan gelen hoş tarih kısayollarının birçoğunu içeriyordu.
belacqua

25

Alt+ #(yani, Alt+ Shift+ 3) geçerli komutu yorumlayacak ve bir sonraki satırda devam edecektir.

Örneğin, yazarsanız t, e, s, t, Alt+ #, elde edersiniz:

you@computer$ #test
you@computer$ 

Eğer geri eski komut almak istiyorsanız, yukarı ok tuşuna basabilirsiniz ve karma karakter silmek ( Up, Home, Deleteveya Up, Ctrl+ A, Delete).

Bence Bash, Python ve MySQL'de çalıştığı için GNU Readline'ın bir özelliği .


22

Ctrl+ C- Çalışan komutları kesmenin yanı sıra, komut satırı girişinizi "kesmek" için de kullanılabilir.

Ctrl+ ' Nın aksine U, hala ne yazdığınızı göreceksiniz ancak imleciniz yeni satıra atlayacak ve boş bir komut satırı istemi alacaksınız.


4
Bunu sadece kas hafızası nedeniyle tercih ediyorum ve hala iptal edilmiş komut satırı orada kaldığından önemli şeyleri kopyalayıp yapıştırabilirsiniz.
imsi

8

Bash readlinekısayolu Ctrl+ X+ E, komut satırında çalışırken gerçekten çok kullanışlıdır. Uzun bir komut girme sürecinde iseniz ve bunun yerine varsayılan metin düzenleyicinizde açmak istediğinize karar verirseniz, tek yapmanız gereken kısayolu kullanmaktır.

Bash'in readlinekütüphanesini kullanır ve bu özel kısayol denir edit-and-execute-command. Sen koyarak varsayılan düzenleyici ayarlayabilirsiniz export EDITOR="/usr/bin/vi"bölgesi ~/.bashrcveya ~/.bash_aliases.

Enter bind -PMevcut görmek readlinebağlamaları ve bakın man readlineveya çevrimiçi Ubuntu Man sayfalarından daha fazla bilgi için.


7

Ayrıca, önceki tüm karakterleri özel bir karaktere kadar silmek için Esc+ tuşlarını da kullanıyorum Backspace. Bu aynı Alt+ Backspace. Bir seferde sadece birkaç kelime siliyorsanız kullanışlı.


3

İçin vianahtar bağları

Ile veya içinde olduğu vigibi bir anahtar harita kullanırken :bashset -o vizshbindkey -v

Mod ekle

Bu sadece varsayılan / emacs modundaki ile aynı tuş vuruşudur:

Ctrl+U

Mevcut pozisyondan satırın başlangıcına kadar silme Böylece, imleç sonundaysa tüm satırı siler.

Normal mod

Satırı iki tuş vuruşunda silmenin birçok yolu vardır:

ddBir satırın varsayılan sayımı ile satır satırını silin :

dd

Bu dokunulan tuşlar açısından en basiti.

Başka bir yol şudur: ile satırın başına git ve satırın ^sonuna ile sil D:

^D

Her ikisi de tüm satırı siler, yalnızca sola değil, ekleme modunda Ctrl+ Uveya varyant kaldırımındaki gibi.

Şu anda satırın sonundaysanız, sağdaki herhangi bir şeyi silmeniz gerekmez, bu aynı zamanda:

dSatırın başından itibaren buradan silin ^:

d^

Bunları iç metin modundan kullanabilirsiniz, normal moda geçmek için önce normal kaçışa ihtiyacınız vardır. Örneğin tüm satırı ekleme modundan silmek için şunu kullanın:

Escdd

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.