Bash'da kişi mevcut girişi nasıl temizler?


172

Diyelim ki bash'da şöyle bir komut yazmaya başlıyorsunuz:

$ rm -rf /foo/bar/really/long/path/here

ve sonra bunu gerçekleştirmek istemediğinizi anlayın. Bir veya iki tuşa basarak girişi temizlemenin bir yolu var mı?

Son zamanlarda ne yaptım yankı bekleyen ve girdi tırnak içine (Ctrl + A echo ",, Ctrl + E, ") sonra enter enter vurmak. Daha hızlı bir yol var mı?


Ya da bir komutu yapıştırdığınızı ve bunun tek satırlık yanlış olduğunu anlayın. Backspace yaklaşık 20 karakter sonra gerçekten yaşlanıyor!
Ocak 17:12

<kbd> Ctrl </kbd> - <kbd> C </kbd>, geçmişi korumak istiyorsanız bkz. stackoverflow.com/a/9679852/6521116
Kris Roofe

Yanıtlar:


286
  1. İmleçten önceki her şeyi silmek için Ctrl- tuşuna basın U. Silinen komut bir arabellekte saklanır. Silinen komutu yapıştırmak için Ctrl- tuşuna basın Y.

    (İsteğe bağlı: Önce girişin sonuna atlamak için Endveya Ctrl- tuşuna basın E.)

  2. Alternatif olarak, yazdıklarınızı iptal etmek için Ctrl- tuşuna basın C.


28
Bir uyarı yok: Ctrl-C, şimdiki istemi öldürmek Yeni bir istemi başlatın ve 1. dönüş kodu ayarlayacaktır
user716468

14
Buna alışmayın, Ctrl-U kullanın. Ctrl-C bash'de o kadar da kötü değil, ancak mysql istemi isteminiz varsa, Ctrl-C gerçekten can sıkıcı olan sunucu ile bağlantıyı kesecektir.
Christian

1
Birçok sistemde, girişi şimdiye kadar öldüren bir terminal 'kill' karakteri olduğunu unutmayın. Çoğu zaman, bu kontrol-X'dir. İle kontrol edebilirsiniz stty -a. Ve bu, terminal kontrollerini aktif olarak değiştirmeyen herhangi bir programla çalışacaktır.
Jonathan Leffler

Ctrl-A ardından Ctrl-K da çalışır. 'Öldürülmüş' metin saklanır ve Ctrl-Y kullanarak yapıştırabilirsiniz. Bu tuş vuruşları aslında okuma satırı kütüphanesinden gelir: cnswww.cns.cwru.edu/php/chet/readline/rluserman.html .. böylece bunları kullanıcı arayüzünün kütüphaneyi kullandığı herhangi bir araçta bulabilirsiniz (Aslında Emacs, bash, vb..). .İnputrc dosyasını düzenleyerek davranışını özelleştirebilirsiniz (daha fazla bilgi için yukarıdaki bağlantıya bakın).
rkachach

93

Ctrl+ ' Yı deneyin U. Bu, giriş satırını temizler.


7
Teşekkürler, bunu neredeyse cevap olarak kabul ettim. Ama sadece imleçten önceki girişi temizlediğini gördüm. Bazı durumlarda komutu düzenlemenin ortasındayım, bu yüzden Ctrl + U yerine "geçerli girişi sil" olarak Ctrl + C'yi hatırlamayı tercih ederim.
user85509


21

Ctrl- U, Ctrl- Khile de yapıyor.

Ctrl- Usatırın başından imlece kadar her şeyi siler , Ctrl- Kimleçten satırın sonuna kadar her şeyi siler. (Bazen bunlardan sadece birini kullanmak faydalı olabilir.)


13

Bunu yapmak için iki seçenek var

ctrl+ c- imlecin nerede olduğuna bakılmaksızın tüm satırı temizler.

ctrl+ u- imlecin konumundan başlangıcına kadar olan çizgiyi temizler.


2
"Cu (veya Ce ve sonra Cu) kullanmanın temizlediğinizi bir arabellekte saklayacağını düşünün, böylece daha sonra Cy kullanarak yapıştırabilirsiniz." Markisisme daha basit bir tek komut ctrl + _. stackoverflow.com/questions/1056440/… john kug tarafından cevaplandı - yeni başlayan stackoverflow size cevap eklemek için yeterli puan yok.
vks

9

Güzel bir kısayol basıyor Esc#. Bir #karakterin başına gelir (böylece satırı bir yorum yapar) ve enter tuşuna basın. Daha sonra hala komuta ihtiyacınız olduğuna karar verirseniz, hala geçmişinizde var :)


3
Çoğu terminalde, bu aynı zamanda Alt + # ile aynıdır, bu da onu bir (akorlu) tuş vuruşu yapar.
Dolda2000

Basit ama akıllı bir çözüm ve bence bu bir komutu iptal etmenin daha kullanıcı dostu bir yolu. Tam aradığım şey :)
Cas

9

Basılması Escartı Backspacebash imlecin konumuna şeyi temizler.

(Cygwin'de bu, bir sonraki kelimeye kadar olan girişi temizleyecektir. Kelimeler boşluklar, alt çizgiler, ... ile ayrılmıştır.)


3

Kullanarak düşünün Ctrl- U(veya Ctrl- Edaha sonra ve Ctrl- U) Bir tampon içerisinde temizlemek neyi saklar, sonra kullanarak daha sonra yapıştırmak böylece Ctrl- Y.



3

Bu, bir karma ile önek ekleyerek satırı konsol geçmişinde saklayan knittl cevabının genişlemesidir . Yanlışlıkla üzerine yazma veya kesme çizgisini referans olarak görememe gibi panonun sakıncalarının üstesinden gelmek.

Yorum Satırı ve Yeni İstemi İade Et

Tuş kısayollarından birini kullanın:

  • Esc,#
  • Alt+#

Bir karma karakteri #satırın başına eklenecek, böylece tüm satır bir yoruma dönüşecektir. Ayrıca, kullanıcı tarafından enter tuşuna basılmış gibi yeni bir istem döndürür. Örneğin

$ #rm -rf /foo/bar/really/long/path/here
$

Yorumlanan Satırı Al

Eski satırı konsol geçmişinden kurtarmak için aşağıdaki kısayollardan birini kullanın:

  • Up
  • Ctrl+p

İstediğiniz satır görünene kadar tuş kısayolunu tekrarlayın.


Hızlı Karma Öneki Kaldırma

Satırın karma #önekini kaldırmak için birkaç farklı seçenek vardır:

İlk karakteri kaldırın ve hemen komutu yürütün:

  • Esc, 1, Esc,#
  • Alt+ -, Alt+#

Komutu çalıştırmadan ilk karakteri başlatmak ve kaldırmak için imleci hareket ettirin:

  • Home, Delete
  • Ctrl+ a, Ctrl+d

2

Geçerli satırı silmek için şunu deneyin:

Ctrl- X, Ctrl-U

Alternatif olarak şunları kullanabilirsiniz:

Esc-D

~ / .inputrc için gereken:

"\ed": kill-whole-line 

bkz. http://codesnippets.joyent.com/posts/show/1690


Sadece kaçış anahtarının tüm satır eklemesini temizlemesini istiyorsanız "\e\e": kill-whole-line(esc tuşuna çift basmak gerekir)
binaryfunt
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.