Komut satırından yürütülmemiş bir MySQL sorgusunu nasıl temizlersiniz?


88

Bir MySQL veritabanına bir komut satırı sorgusu yazdığınızı ve işlemi iptal edip baştan başlamanız gerektiğini varsayalım. Bir bash kabuğundan ctrl-c yazıp yeni bir komut istemi alabilirsiniz. MySQL'de, ctrl-c istemciden çıkar ve sizi kabuğa döndürür.

Örneğin, yazdığım uzun, karmaşık bir SELECT deyimim var, ancak henüz return tuşuna basmadım. Komutu göndermek istemediğimin farkındayım, ancak komutun ekranda olmasını istiyorum, böylece onu referans olarak kullanabilirim. MySQL'den çıkmadan kurtulmak istiyorum. Herhangi bir fikir?

Anahtar nokta: komut henüz çalıştırılmadı .


10
Bir referans olarak, mysql 5.7'de bu çözüldü. Şimdi tam olarak bunu yapmak için ctrl-c yapabilirsiniz.
dkniffin

LAMP yığını çok eski ve yaygın bir kullanıma sahip. İnsanların her gün karşılaşacağı şeyleri tamir etmelerinin bu kadar uzun sürmesi beni şaşırtıyor.
ahnbizcad

@dkniffin: Bunun eski bir soru olduğunu biliyorum, ancak yine de aramada ilk sırada yer alıyor. Devam eden trafiğe yardımcı olmak için yorumunuzu bir yanıt olarak (zaten bir cevaptır) ekleyebilir misiniz?
şapka

@hat peki, bunu bir cevap olarak ekledim
dkniffin

Yanıtlar:


114

Tür \c.

MySQL'i başlattığınızda, muhtemelen şu mesajı göreceksiniz:

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

Bahsettiği "tampon", komut / sorgu tamponudur.


7
Küçük bir nokta: Bunu herhangi bir noktalı virgül sonlandırıcıdan önce yapmanız gerekiyor .
wulftone

Güzel olan şey, aslında onu netleştirmiyor ; yazılan her ne ise görünür kalır. (Dürüst olmak gerekirse mesajdan bunu tahmin edemezdim, bu yüzden hiç denemedim.)
Michael Scheper

43

Önce Ctrl+ a, ardından Ctrl+ yazın k.


4
Ancak OP, "Ekranda komutun olmasını istiyorum, böylece onu referans olarak kullanabilirim."
ruakh

5.5.40-0 sürümünden itibaren çalışır.
kadar

1
5.6.28 @Ubuntu ile çalışmıyor. Bunun yanında bu, mevcut ekran penceresini öldürmek için bir dizi.
Piohen

1
Eh, bu diziyi her zaman şunun ve bunun için bir kısayol olarak ayarlayabilirsiniz. Bu, emacs ve bash'daki varsayılan dizidir.
kadar

1
Elbette en yaygın kullanım durumum için işe yaramıyor: Noktalı virgülü unuttum, enter tuşuna bastım ve geçmişimi gereksiz bir iki satırla karıştırmak yerine komutu doğru şekilde yeniden yazmayı tercih ederim.
quazgar

18

Mevcut satırı silmek için aşağıdaki kısayollardan birini kullanın:

  • Tür Ctrl+ uhat başlangıç imleç arkasından silme her şeye
  • Tür Ctrl+ ksatırın sonuna imlecin gelen silme her şeye

Aksi takdirde, daha önce belirtildiği gibi \cmevcut satırın sonuna yazın ( clearkomut için bir kısayol ) ve ardından tuşuna basın Enter.


0

Uzun bir komutsa, genellikle komutun başına oklarım ve anlamsız kelimeler eklerim, bu nedenle çalıştırmaz, ancak yeniden yazmak zorunda kalmadan yukarı ok yapabilir ve erişim sağlayabilirim. Aksi takdirde, yürütmek istemiyorsanız, sadece yukarı oka basın ve sizi komut geçmişinizde kaydırmalıdır. Kısa bir komut bulun, geri tuşu, ardından istediğinizi yazın.


0

Kabuğunuzun temel bağlantılarına bağlıdır. Ana ekrana veya başlangıca geri dönmek için kullandığınız tuş dizisine basabilir, sorgunuzun önüne X ekleyebilir veya sözdizimsel olarak geçersiz kılacak her şeyi yapabilirsiniz, enter tuşuna basın ve iyisiniz


0

Buraya Transact-SQL'de aynı cevabı bulmayı umarak geldiyseniz, yazın RESET


0

Mysql 5.7'de bu çözüldü. Artık ctrl-cSQL komut satırından çıkmak için yapabilirsiniz .

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.