Có một dòng lệnh Windows với lịch sử lệnh / tự động hoàn thành giống như bash thông minh không?


21

Gần đây tôi đã bắt đầu sử dụng bash và phát hiện ra một số tính năng thực sự tuyệt vời (không nhất thiết phải ra khỏi hộp, nhưng có thể được định cấu hình):

  • Mũi tên lên / xuống hỗ trợ hoàn thành một phần: Nhập "git", nhấn mũi tên LÊN và bạn sẽ duyệt qua các lệnh gần đây bắt đầu bằng "git" (ngay cả trong các phiên trước đó!)
  • Ctrl-R sẽ tìm kiếm lịch sử lệnh của bạn (được gọi là Reverseed-i-search vì một số lý do)
  • Nhiều, nhiều nữa tôi không biết, tôi chắc chắn.

Có một sự thay thế cmd.exe tốt cho Windows hỗ trợ các tính năng như vậy không? Tôi đã duyệt qua các câu trả lời hàng đầu cho câu hỏi này , nhưng không tìm thấy liệu có bất kỳ lựa chọn thay thế phổ biến nào hỗ trợ nó không.


2
Bạn đã bao giờ thử F7 trong dấu nhắc lệnh chưa?
William Hilsum

Tôi không có. Và kết quả đầu tiên của Google (từ năm 2005 không kém!) Là Kinh dị mã hóa! mã hóa kinh dị.com / blog / 2005/07 / stool-common-prompt-tricks.html Bây giờ chỉ cần trả lời phần khác của câu hỏi của tôi, và tôi sẽ còn hồi hộp hơn nữa.
ripper234

1
Thật không may, người dùng Windows thường sử dụng những gì hệ thống đi kèm và không có sự thay thế cmd.exe phổ biến nào. Cygwin được sử dụng rộng rãi như một "trình giả lập" Linux cho Windows, bạn có thể dùng thử. @William: tốt đẹp không biết điều đó, nhưng bạn đã bao giờ thử bash chưa? Bash nhớ các lệnh của các phiên cũ, không chỉ phiên hiện tại. Và cũng lọc kết quả theo trạng thái ripper234, không nói về việc chuyển đổi liên kết thành URL hợp lệ, cuộn bằng chuột trên các ứng dụng đầu cuối và một danh sách dài ... Và btw, tại sao bạn vẫn không thể thay đổi kích thước theo chiều ngang của cửa sổ nhắc lệnh? Điều này sẽ luôn đánh đố tôi ...
m0skit0

Hai cmdthay thế phổ biến được thảo luận cả bên dưới (bởi paradroidRedGrittyBrick) và trong các câu trả lời được liên kết từ trên xuống và câu hỏi sau của bạn dựa trên tiền đề quan sát không chính xác. Tôi chỉ sử dụng chuột để tự thay đổi kích thước cửa sổ giao diện điều khiển.
JdeBP

Câu trả lời:


22

Tải xuống và cài đặt bảng điều khiển Powershell 2.0 (nếu bạn đang sử dụng Windows 7, nó đã được cài đặt).

Nó hỗ trợ tất cả các lệnh kế thừa cũng như bí danh, macro và hơn thế nữa ...

Dưới đây là một số lời khuyên cơ bản .

hộp thoại vỏ điện

get-history: Hiển thị danh sách các lệnh đã nhập trước đó.

invoke-history 35:Thực thi lệnh # 35 trong danh sách lịch sử

`: Nhấn phím dấu nháy ngược để chèn ngắt dòng hoặc dưới dạng ký tự thoát để tạo ký tự theo nghĩa đen. Bạn cũng có thể ngắt một dòng tại ký tự pipe (|).

Alt+ Dấu cách + E: Hiển thị menu phím tắt chỉnh sửa với các tùy chọn Đánh dấu, Sao chép, Dán, Chọn Tất cả, Cuộn và Tìm . Sau đó, bạn có thể nhấn KMark, Yfor Copy, PPaste, Scho Chọn tất cả, Lđể cuộn qua bộ đệm màn hình hoặc Fđể tìm kiếm văn bản trong bộ đệm màn hình. Để sao chép bộ đệm màn hình vào Clipboard, nhấn Alt+ Space + E+ Svà sau đó nhấn Alt+ Space + E+ Y.

Alt+ F7: Xóa lịch sử lệnh.

Ctrl+ C: Thoát khỏi phân đoạn phụ hoặc chấm dứt thực thi.

Ctrl+ End: Xóa tất cả các ký tự trong dòng sau con trỏ.

Ctrl+ Left Arrow|| Ctrl+ Right Arrow: Di chuyển sang trái hoặc phải một từ một lần.

Ctrl+ S: Tạm dừng | | tiếp tục hiển thị đầu ra.

Esc Xóa dòng hiện tại.

F1Di chuyển con trỏ một ký tự sang phải trên dòng lệnh. Ở cuối dòng, chèn một ký tự từ văn bản của lệnh cuối cùng của bạn.

F2 Tạo một dòng lệnh mới bằng cách sao chép dòng lệnh cuối cùng của bạn lên ký tự bạn nhập.

F3 Hoàn thành dòng lệnh với nội dung từ dòng lệnh cuối cùng của bạn, bắt đầu từ vị trí con trỏ hiện tại đến cuối dòng.

F4 Xóa các ký tự khỏi dòng lệnh hiện tại của bạn, bắt đầu từ vị trí con trỏ hiện tại cho đến ký tự bạn nhập.

F5 Quét ngược thông qua lịch sử lệnh của bạn.

F7: Tương tự như get-history. Hiển thị cửa sổ bật lên với lịch sử lệnh của bạn và cho phép bạn chọn một lệnh. Sử dụng các phím mũi tên để cuộn qua danh sách. Nhấn Enterđể chọn lệnh để chạy hoặc nhấn Right arrowđể đặt văn bản trên dòng lệnh.

F8 Sử dụng văn bản bạn đã nhập để quét ngược qua lịch sử lệnh của bạn cho các lệnh khớp với văn bản bạn đã nhập cho đến nay trên dòng lệnh.

F9Chạy một lệnh được đánh số cụ thể từ lịch sử lệnh của bạn. Số lệnh được liệt kê khi bạn nhấn F7hoặc get-history.

Page Up/ Page Down: Nhận lệnh đầu tiên / cuối cùng trong lịch sử lệnh.

Nhấp chuột phải Nếu QuickEdit bị tắt, hiển thị menu phím tắt chỉnh sửa với các tùy chọn Đánh dấu, Sao chép, Dán, Chọn Tất cả, Cuộn và Tìm. Để sao chép bộ đệm màn hình vào Clipboard, bấm chuột phải, chọn Chọn, rồi nhấn Enter.

Tab/ Shift+ Tab: Nhấn phím Tab hoặc nhấn Shift + Tab để truy cập chức năng mở rộng tab, bao gồm tự động hoàn thành thư mục hoặc tên tệp.


Nó có hỗ trợ tìm kiếm lịch sử một phần không?
ripper234

1
Có, nhập chuỗi bạn muốn tìm kiếm và nhấn F8.
Surfasb

Đó là tổng quan rất toàn diện về các điều khiển bàn phím PowerShell.
paradroid

Tôi sẽ tìm ra một danh sách các mô-đun Powershell phải có sau. . .
Surfasb

1
@surfasb: Bạn nên bao gồm PowerTab, vì nó có liên quan đến câu trả lời này. Tab với nó giống như IntelliSense.
paradroid

11

Bạn không cần phải thay thế Dấu nhắc lệnh! Windows có nhiều tính năng được tích hợp trong Dấu nhắc lệnh, chẳng hạn như:

  • Lịch sử chỉ huy: F7F9

  • Thêm 1 chữ cái tại một thời điểm từ lệnh trước: F1

  • Tự động hoàn thành các thư mục và tên tệp: Tab

Thậm chí còn có nhiều thủ thuật hơn, nhưng bạn sẽ cần tìm kiếm thêm trên Google vì tôi không thể tìm thấy một trang web có danh sách toàn diện.


11

Clink mở rộng dòng lệnh Windows và thêm các tính năng sau

  • Chỉnh sửa dòng giống Bash mạnh mẽ từ thư viện Readline của GNU
  • Hoàn thành đường dẫn cao cấp (TAB)
  • Dán từ clipboard (Ctrl-V)
  • Hỗ trợ hoàn thành các lệnh thực thi / lệnh và các biến môi trường
  • Hoàn tác / Làm lại (Ctrl-_ hoặc Ctrl-X, Ctrl-U) Cải thiện lịch sử dòng lệnh. Kiên trì qua các phiên
  • Có thể tìm kiếm (Ctrl-R và Ctrl-S). Mở rộng lịch sử (ví dụ !!,!, Và! $). Hoàn thành kịch bản bằng Lua.

Hoàn hảo. Nó làm cho cmd.exe trở nên hữu ích hơn nhiều.
beta

5

Thắng-Bash ?

Bash độc lập cho Windows

win-bash là một cổng windows của bash GNU nổi tiếng (xem trang chủ GNU Bash).

Không giống như các cổng bash khác cho windows (ví dụ bash cygwin), win-bash không cần môi trường đặc biệt hoặc DLL. Chỉ có một nhị phân và đó là nó.

Tôi không chắc làm thế nào chức năng và đáng tin cậy này.


Ngoài ra còn có lệnh jpsoftware - nhưng, rất tiếc, đã được đề cập trong Q khác mà bạn đã đề cập, vì vậy có lẽ không làm những gì bạn muốn.


Trên thực tế, Take Command không làm những gì xe muốn. Nó có lịch sử lệnh toàn cầu có thể được ghi nhớ ngay cả khi không có trình thông dịch lệnh đang chạy. Nó có lọc và chỉnh sửa danh sách lịch sử . Tôi đoán là "câu trả lời hàng đầu" không kéo dài để trả lời # 5. ☺
JdeBP

@JdeBP - Take Command là khoảng # 12 trong danh sách.
ripper234

SuperUser đang liệt kê nó là câu trả lời thứ năm khi xem tại đây.
JdeBP

1
Bạn có thể sắp xếp câu trả lời theo "hoạt động", "cũ nhất" hoặc "phiếu bầu". Bởi "phiếu bầu" là mặc định và SuperUser sau đó dường như chọn ngẫu nhiên các câu trả lời với số phiếu bằng nhau - Tôi thấy việc làm mới trang thay đổi thứ tự ..
RedGrittyBrick

1
@ ripper234: Bạn đang nói về cái gì? Win-Bash đã được cập nhật vào tháng 3 năm ngoái.
paradroid

3

Take Command đã được đề cập, nhưng TCC / LE (một tập hợp con) là mộtsự thay thế miễn phí CMD với nhiều tính năng, lệnh và khả năng tùy biến hơn. Nó đi theo một cách nào đó hướng tới việc mang lại trải nghiệm giống như bash, theo như các phím tắt, bí danh và tô màu.

Nó có thể làm một vài điều bạn đề cập, bao gồm hoàn thành một phần lịch sử bằng Up/Downmũi tên. CTRL-Blặp lại đường dẫn từ lệnh trước. Hãy thử gõ optionđể xem toàn bộ tải tùy chọn.

TCC/LEcũng hoạt động rất độc đáo trong Console2 .

Ngoài ra, tất nhiên bạn có thể sử dụng bash trên Windows với Cygwin .


1

Phần mở rộng Prompt lệnh PyCmd mã nguồn mở thực hiện hầu hết những gì bạn yêu cầu.

Mục đích của nó là mô phỏng một vài tính năng mạnh mẽ của hệ vỏ UNIX (hoàn thành Tab tốt, lịch sử bền bỉ, v.v.).

hình ảnh

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.