Akıllı bash benzeri otomatik tamamlama / komut geçmişi olan bir Windows komut satırı var mı?


21

Son zamanlarda bash kullanmaya başladım ve gerçekten harika bazı özellikler keşfettim (mutlaka kutudan çıkmadım ama konfigüre edilebilir):

  • Yukarı / aşağı oklar kısmi tamamlamayı destekliyor: "git" yazın, YUKARI okuna basın, "git" ile başlayan son komutlara göz atacaksınız (önceki oturumlarda bile!)
  • Ctrl-R komut geçmişinizi arayacak (bir nedenden dolayı ters-i-arama denir)
  • Çok, çok, farkında değilim, eminim.

Bu özellikleri destekleyen Windows için iyi bir cmd.exe alternatifi var mı? Bu sorunun en iyi yanıtlarını okudum , ancak popüler alternatiflerden herhangi birinin destekleyip desteklemediğini bulamadım.


2
Komut isteminde F7'yi hiç denedin mi?
William Hilsum

Bende yok. Ve ilk Google sonucu (2005'ten az değil!) Kodlama Korkusu! codinghorror.com/blog/2005/07/stupid-command-prompt-tricks.html Şimdi sorumun diğer bölümünü yanıtlayın ve daha da heyecanlanacağım.
ripper234

1
Ne yazık ki, Windows kullanıcıları genellikle sistemle birlikte gelenleri kullanır ve popüler cmd.exe değişimi yoktur. Cygwin, Windows için Linux'ta bir "emülatör" olarak yaygın bir şekilde kullanılır, denemek isteyebilirsiniz. @William: nice bunu bilmiyordu, ama hiç bash denedin mi? Bash, yalnızca geçerli oturumu değil eski oturumların komutlarını hatırlar. Ayrıca, sonuçları ripper234'te belirtildiği gibi filtreler, bağlantıları geçerli URL’lere dönüştürme, terminal uygulamalarında fareyle kaydırma ve uzun bir liste hakkında konuşmamaları ... Ve btw, neden komut istemi penceresini yatay olarak yeniden boyutlandıramıyorsunuz? Bu beni her zaman bulmaca olacak ...
m0skit0

İki popüler cmddeğiştirmeler (aşağıda hem tartışılır paradroidve RedGrittyBrick) ve cevapları yukarıda-köprü, ve ikincisi soru bir gözle görülebilen bir yanlış koşuluna dayanmaktadır. Fareyi sadece bir konsol penceresini yatay olarak yeniden boyutlandırmak için kullandım.
JdeBP

Yanıtlar:


22

Powershell 2.0 konsolunu indirin ve kurun (Windows 7 kullanıyorsanız, zaten kuruludur).

Tüm eski komutları, diğer adları, makroları ve daha fazlasını destekler ...

İşte bazı temel ipuçları .

güç kabuk iletişim

get-history: Önceden girilmiş komutların bir listesini görüntüler.

invoke-history 35:Get -history listesinde # 35 komutunu çalıştırır.

`: Satır sonu eklemek için geri kesme kesme tuşuna veya hazır karakter yapmak için> kaçış karakteri olarak basın. Ayrıca boru (|) karakterinde bir çizgi de kesebilirsiniz.

Alt+ Boşluk + E: İşaretle, Kopyala, Yapıştır, Tümünü Seç, Kaydır ve Bul seçenekleriyle düzenleme kısayol menüsünü görüntüler . Ekran tamponunda gezinmek veya ekran tamponunda metin aramak için Kİşaretle, YKopyala, PYapıştır, STümünü Seç için tuşlarına basabilirsiniz . Ekran tamponunu Pano'ya kopyalamak için, + Boşluk + + tuşlarına ve ardından + Boşluk + + tuşlarına basın .LFAltESAltEY

Alt+ F7: Komut geçmişini temizler.

Ctrl+ C: Alt reklamdan çıkın veya yürütmeyi sonlandırın.

Ctrl+ End: İmleçten sonraki satırdaki tüm karakterleri silin .

Ctrl+ Left Arrow|| Ctrl+ Right Arrow: Bir seferde bir kelime sola veya sağa hareket ettirin.

Ctrl+ S: Duraklat || çıktının görüntüsünü devam ettirir.

Esc Geçerli çizgiyi temizle.

F1İmleci bir karakter komut satırında sağa hareket ettirir. Satırın sonuna, son komutunuzun metninden bir karakter ekler.

F2 Son komut satırınızı yazdığınız karaktere kadar kopyalayarak yeni bir komut satırı oluşturur.

F3 Geçerli imleç konumundan başlayarak satırın sonuna kadar komut satırını son komut satırındaki içerikle tamamlar.

F4 Geçerli imleç konumundan başlayarak yazdığınız karaktere kadar, mevcut komut satırından karakterleri siler.

F5 Komut geçmişinizde geriye doğru tarar.

F7: Benzer get-history. Komut geçmişinizle birlikte bir açılır pencere görüntüler ve bir komut seçmenize izin verir. Listede ilerlemek için ok tuşlarını kullanın. Basın Enterçalıştırmak için bir komut seçin veya basın Right arrowkomut satırında metni yerleştirmek için.

F8 Şimdiye kadar girdiğiniz metinle komut satırında eşleşen komutlar için komut geçmişinizde geriye doğru taramak için girdiğiniz metni kullanır.

F9Komut geçmişinizden belirli bir numaralı komutu çalıştırır. F7Veya tuşuna bastığınızda komut numaraları listelenir get-history.

Page Up/ Page Down: Komut geçmişindeki ilk / son komutu alır.

Sağ Tıklatma QuickEdit devre dışı bırakılmışsa, İşaretle, Kopyala, Yapıştır, Tümünü Seç, Kaydır ve Bul seçenekleriyle bir düzenleme kısayolu menüsü görüntüler. Ekran arabelleğini Pano'ya kopyalamak için sağ tıklayın, Seç'i seçin ve ardından Enter tuşuna basın.

Tab/ Shift+ Tab: Klasör veya dosya adı otomatik tamamlama özelliğini içeren sekme genişletme işlevine erişmek için Sekme tuşuna basın veya Shift + Sekme tuşlarına basın.


Kısmi tarih aramayı destekliyor mu?
ripper234

1
Evet, aramak istediğiniz dizeyi yazın ve F8 tuşuna basın.
surfasb

Bu PowerShell klavye kontrollerine çok kapsamlı bir genel bakış.
paradroid

Daha sonra Powershell modüllerinin sahip olması gerekenlerin bir listesini çıkaracağım. . .
surfasb

1
@surfasb: Bu cevapla alakalı olduğu için PowerTab'ı eklemelisiniz. Sekme yapmak IntelliSense'e benziyor.
paradroid

11

Komut İstemi'ni değiştirmeniz gerekmez! Windows, Komut İstemi'nde yerleşik olarak bu özelliklerin çoğuna sahiptir, örneğin:

  • Komut geçmişi: F7veF9

  • Önceki komuttan bir defada 1 harf ekleyin: F1

  • Dizin ve dosya adlarının otomatik olarak doldurulması: Tab

Daha da püf noktaları var, ancak kapsamlı bir listeye sahip bir web sitesi bulamadığım için Google’da daha ileriye bakmanız gerekecek.


11

Clink , Windows komut satırını genişletir ve aşağıdaki özellikleri ekler

  • GNU Readline kütüphanesinden güçlü Bash benzeri çizgi düzenleme
  • Üstün yol tamamlama (TAB)
  • Panodan yapıştır (Ctrl-V)
  • Çalıştırılabilir / komutların ve ortam değişkenlerinin tamamlanması için destek
  • Geri Al / Yinele (Ctrl-_ veya Ctrl-X, Ctrl-U) Geliştirilmiş komut satırı geçmişi. Oturumlarda devam eder
  • Aranabilir (Ctrl-R ve Ctrl-S). Geçmişin genişlemesi (ör. !!,! Ve! $). Lua kullanarak komut dosyasıyla tamamlanması.

Mükemmel. Cmd.exe aracını çok daha kullanışlı kılar.
beta

5

Kazanmak mı?

Windows için tek başına bir bash

win-bash, ünlü GNU bash'ının bir windows limanıdır (bkz. GNU Bash ana sayfası).

Windows için diğer bash bağlantı noktalarının aksine (örneğin, cygwin bash), win-bash'ın özel bir ortam ya da DLL'ye ihtiyacı yoktur. Sadece bir ikili var ve hepsi bu.

Bunun ne kadar işlevsel ve güvenilir olduğundan emin değilim.


Ayrıca, jpsoftware'in alma emri de var - ama oops, bahsettiğiniz diğer soruda bahsedilen ops , muhtemelen istediğiniz şeyi yapmıyor.


Aslında Komut atın gelmez Xe ne isterse. It has genel komut geçmişini hiçbir komut yorumlayıcı çalışırken bile hatırlanacak edilebilir. It has geçmiş listesi filtreleme ve düzenleme . Tahminime göre, "en iyi cevaplar" 5 numaraya cevap vermeyi gerektirmiyor. ☺
JdeBP

@JdeBP - Al Komutu listede yaklaşık 12 numaradır.
ripper234

SuperUser, burada görüntülendiğinde onu beşinci cevap olarak listeliyor.
JdeBP

1
Cevapları "aktif", "en eski" veya "oy" ile sıralayabilirsiniz. "Oylar" varsayılandır ve Süper Kullanıcı daha sonra eşit
oylarla

1
@ ripper234: Ne hakkında konuşuyorsun? Win-Bash, geçen Mart ayında güncellendi.
paradroid

3

Take Command'dan zaten bahsedilmiştir, ancak TCC / LE (bir alt küme),çok daha fazla özellik, komut ve özelleştirilebilirlik içeren ücretsiz CMD bir ikamedir. Klavye kısayolları, takma adlar ve renklendirme gibi, bash benzeri bir deneyim vermeye doğru ilerliyor.

Up/DownOklarla kısmi tarih tamamlama da dahil olmak üzere bahsettiğiniz birkaç şeyi yapabilir . CTRL-Bönceki komuttan yolu tekrarlar. Çok optionsayıda seçenek görmek için yazmaya çalışın .

TCC/LEAyrıca Konsol 2 içinde çok iyi çalışıyor .

Ayrıca, tabii ki Windows'ta bash'ı Cygwin ile kullanabilirsiniz .


1

Açık kaynak PyCmd Komut İstemi uzantısı, istediğiniz şeyin çoğunu yapar.

Amacı, UNIX mermilerinin bir kaç güç özelliğini taklit etmektir (uygun Tab tamamlama, kalıcı tarih vb.).

görüntü

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.