Apakah ada baris perintah Windows dengan pelengkapan otomatis / riwayat perintah pintar bash-like?

21

Saya baru-baru ini mulai menggunakan bash, dan menemukan beberapa fitur yang sangat bagus (tidak harus keluar dari kotak, tetapi dapat dikonfigurasi):

  • Panah Atas / Bawah mendukung penyelesaian sebagian: Ketik "git", tekan panah ATAS, dan Anda akan dapat menelusuri perintah terbaru yang dimulai dengan "git" (bahkan di sesi sebelumnya!)
  • Ctrl-R akan mencari riwayat perintah Anda (disebut reversed-i-search karena beberapa alasan)
  • Banyak, banyak lagi yang tidak saya sadari, saya yakin.

Apakah ada alternatif cmd.exe yang baik untuk Windows yang mendukung fitur tersebut? Saya telah menelusuri jawaban teratas untuk pertanyaan ini , tetapi tidak menemukan apakah ada alternatif populer yang mendukungnya.

ripper234
sumber
2
Pernahkah Anda mencoba F7 di command prompt?
William Hilsum
Aku belum. Dan hasil Google pertama (dari 2005 tidak kurang!) Adalah Horor Pengodean! codinghorror.com/blog/2005/07/stupid-command-prompt-tricks.html Sekarang jawab bagian lain dari pertanyaan saya, dan saya akan lebih senang.
ripper234
1
Sayangnya, pengguna Windows umumnya menggunakan sistem apa yang disertakan, dan tidak ada pengganti cmd.exe yang populer. Cygwin banyak digunakan sebagai "emulator" Linux untuk Windows, Anda dapat mencobanya. @ William: senang tidak tahu itu, tetapi apakah Anda pernah mencoba bash ? Bash mengingat perintah sesi lama, tidak hanya sesi saat ini. Dan juga menyaring hasil sebagai ripper234 menyatakan, tidak untuk berbicara tentang mengubah tautan menjadi URL yang valid, gulir dengan mouse pada aplikasi terminal dan daftar panjang ... Dan btw, mengapa Anda masih tidak dapat mengubah ukuran jendela perintah prompt secara horizontal? Ini akan selalu membuatku bingung ...
m0skit0
Dua cmdpenggantian populer dibahas di bawah (oleh paradroiddan RedGrittyBrick) dan dalam jawaban yang di-hyperlink ke atas, dan pertanyaan Anda yang terakhir didasarkan pada premis yang keliru. Saya hanya menggunakan mouse untuk mengubah ukuran jendela konsol secara horizontal.
JdeBP

Jawaban:

22

Unduh dan pasang konsol Powershell 2.0 (jika Anda menggunakan Windows 7, itu sudah diinstal).

Ini mendukung semua perintah lawas serta alias, makro dan banyak lagi ...

Berikut ini beberapa tips dasar .

dialog power-shell

get-history: Menampilkan daftar perintah yang dimasukkan sebelumnya.

invoke-history 35:Mengeksekusi perintah # 35 di get-sejarah daftar

`: Tekan tombol tanda mundur ke belakang untuk menyisipkan pemisah baris atau> sebagai karakter pelarian untuk membuat karakter literal. Anda juga dapat mematahkan garis pada karakter pipe (|).

Alt+ Spasi + E: Menampilkan menu pintasan pengeditan dengan opsi Tandai, Salin, Tempel, Pilih Semua, Gulir, dan Temukan . Anda kemudian dapat menekan Kuntuk Tandai, Yuntuk Salin, Puntuk Tempel, Suntuk Pilih Semua, Luntuk menelusuri buffer layar, atau Funtuk mencari teks di buffer layar. Untuk menyalin buffer layar ke Clipboard, tekan Alt+ Spasi + E+ Sdan kemudian tekan Alt+ Spasi + E+ Y.

Alt+ F7: Menghapus riwayat perintah.

Ctrl+ C: Keluar dari subprompt atau mengakhiri eksekusi.

Ctrl+ End: Hapus semua karakter dalam barisan setelah kursor.

Ctrl+ Left Arrow|| Ctrl+ Right Arrow: Pindah ke kiri atau kanan satu kata pada suatu waktu.

Ctrl+ S: Jeda || lanjutkan tampilan output.

Esc Bersihkan baris saat ini.

F1Memindahkan kursor satu karakter ke kanan di baris perintah. Di akhir baris, sisipkan satu karakter dari teks perintah terakhir Anda.

F2 Membuat baris perintah baru dengan menyalin baris perintah terakhir Anda ke karakter yang Anda ketikkan.

F3 Menyelesaikan baris perintah dengan konten dari baris perintah terakhir Anda, mulai dari posisi kursor saat ini ke akhir baris.

F4 Menghapus karakter dari baris perintah Anda saat ini, mulai dari posisi kursor saat ini hingga karakter yang Anda ketikkan.

F5 Memindai mundur melalui sejarah perintah Anda.

F7: Mirip dengan get-history. Menampilkan jendela sembul dengan riwayat perintah Anda dan memungkinkan Anda memilih perintah. Gunakan tombol panah untuk menelusuri daftar. Tekan Enteruntuk memilih perintah yang akan dijalankan, atau tekan Right arrowuntuk menempatkan teks pada baris perintah.

F8 Gunakan teks yang Anda masukkan untuk memindai mundur melalui sejarah perintah Anda untuk perintah yang cocok dengan teks yang Anda ketikkan sejauh ini pada baris perintah.

F9Menjalankan perintah bernomor tertentu dari riwayat perintah Anda. Nomor perintah terdaftar ketika Anda menekan F7atau get-history.

Page Up/ Page Down: Mendapat perintah pertama / terakhir dalam sejarah perintah.

Klik kanan Jika QuickEdit dinonaktifkan, tampilkan menu pintasan pengeditan dengan opsi Tandai, Salin, Tempel, Pilih Semua, Gulir, dan Temukan. Untuk menyalin buffer layar ke Clipboard, klik kanan, pilih Pilih, lalu tekan Enter.

Tab/ Shift+ Tab: Tekan tombol Tab atau tekan Shift + Tab untuk mengakses fungsi ekspansi tab, yang mencakup pelengkapan folder atau nama file.

surfasb
sumber
Apakah itu mendukung pencarian riwayat parsial?
ripper234
1
Ya, ketikkan string yang ingin Anda cari dan tekan F8.
surfasb
Itu gambaran yang sangat komprehensif tentang kontrol keyboard PowerShell.
paradroid
Saya akan mengorek daftar harus memiliki modul Powershell nanti. . .
surfasb
1
@surfasb: Anda harus menyertakan PowerTab, karena relevan untuk jawaban ini. Tabing dengan itu seperti IntelliSense.
paradroid
11

Anda tidak perlu mengganti Command Prompt! Windows memiliki banyak fitur yang dibangun di Command Prompt, seperti:

  • Sejarah perintah: F7danF9

  • Tambahkan 1 huruf sekaligus dari perintah sebelumnya: F1

  • Penyelesaian otomatis direktori dan nama file: Tab

Bahkan ada lebih banyak trik, tetapi Anda perlu melihat lebih jauh di Google karena saya tidak bisa menemukan situs web dengan daftar lengkap.

Keltari
sumber
11

Clink memperluas baris perintah Windows dan menambahkan fitur berikut

  • Pengeditan garis mirip Bash yang kuat dari pustaka Readline GNU
  • Penyelesaian jalur superior (TAB)
  • Tempel dari clipboard (Ctrl-V)
  • Dukungan untuk penyelesaian variabel executable / perintah, dan lingkungan
  • Undo / Redo (Ctrl-_ atau Ctrl-X, Ctrl-U) Riwayat baris perintah yang ditingkatkan. Bertahan di seluruh sesi
  • Dapat dicari (Ctrl-R dan Ctrl-S). Perluasan sejarah (mis. !!,!, Dan! $). Penyelesaian skrip menggunakan Lua.
thegreendroid
sumber
Sempurna. Itu membuat cmd.exe jauh lebih berguna.
beta
5

Menangkan-Bash ?

Pesta yang berdiri sendiri untuk Windows

win-bash adalah port windows dari bash GNU yang terkenal (lihat homepage GNU Bash).

Tidak seperti port bash lain untuk windows (mis. Cygwin bash), win-bash tidak memerlukan lingkungan khusus atau DLL. Hanya ada satu biner dan hanya itu.

Saya tidak yakin seberapa fungsional dan andalnya ini.


Ada juga perintah take jpsoftware - tetapi, oops, yang disebutkan dalam Q lain yang Anda sebutkan, jadi mungkin tidak melakukan apa yang Anda inginkan.

RedGrittyBrick
sumber
Sebenarnya, Ambil Komando tidak melakukan apa xe inginkan. Ini memiliki sejarah perintah global yang dapat diingat bahkan ketika tidak ada penerjemah perintah yang sedang berjalan. Memiliki penyaringan dan pengeditan daftar riwayat . Dugaan saya adalah bahwa "jawaban teratas" tidak cocok untuk menjawab # 5. ☺
JdeBP
@ JdeBP - Take Command sekitar # 12 dalam daftar.
ripper234
SuperUser mencantumkannya sebagai jawaban kelima ketika dilihat di sini.
JdeBP
1
Anda dapat mengurutkan jawaban berdasarkan "aktif", "tertua" atau "suara". Dengan "suara" adalah default dan SuperUser kemudian tampaknya mengacak jawaban dengan suara yang sama - Saya menemukan menyegarkan halaman mengubah urutan ..
RedGrittyBrick
1
@ ripper234: Apa yang kamu bicarakan? Win-Bash diperbarui Maret lalu.
paradroid
3

Take Command telah disebutkan, tetapi TCC / LE (subset) adalahpengganti gratis CMD dengan lebih banyak fitur, perintah, dan penyesuaian. Beberapa cara menuju memberikan pengalaman seperti bash, sejauh cara pintas keyboard, alias dan pewarnaan berjalan.

Itu dapat melakukan beberapa hal yang Anda sebutkan, termasuk penyelesaian sebagian sejarah dengan Up/Downpanah. CTRL-Bmengulangi jalur dari perintah sebelumnya. Coba ketikkan optionuntuk melihat seluruh opsi.

TCC/LEjuga bekerja dengan sangat baik dalam Console2 .

Selain itu, Anda tentu saja dapat menggunakan bash di Windows dengan Cygwin .

paradroid
sumber
1

Ekstensi Prompt Perintah PyCmd open source melakukan sebagian besar dari apa yang Anda minta.

Tujuannya adalah untuk meniru beberapa fitur daya dari shell UNIX (Tab-completion yang layak, riwayat persisten, dll.).

gambar

harrymc
sumber