Tìm kiếm các lệnh trong lịch sử với các từ khóa không liên tục


12

Tôi đã tự hỏi làm thế nào để tìm kiếm các lệnh trong lịch sử mà không biết một vài chữ cái đầu tiên của lệnh?

Khi tìm kiếm bằng cách sử dụng Ctrl- Rtrong bash, người ta phải đưa ra một vài chữ cái đầu tiên của lệnh. Điều gì sẽ xảy ra nếu tôi chỉ biết một số nhân vật ở giữa, hoặc một số ở đầu và một số ở giữa?

Ví dụ, để tìm kiếm cat myfile, tôi chỉ biết có attrong đó, hoặc cở đầu và myở giữa một nơi nào đó. từ khóa phải được định vị liên tục. Ví dụ: trong cat myfile, tôi muốn tìm kiếm cả hai cmy, nhưng Ctrl+Rsẽ không cho phép chỉ định cả hai cùng một lúc.


2
Tôi sử dụng Ctrl-R mọi lúc và nó tự động tìm kiếm văn bản giữa. Không có gì lạ mắt, nhưng trong ví dụ của bạn chỉ cần gõ mylà đủ. Xác nhận của RHEL4 và Cygwin.
Aaron D. Marasco

@Tim: bạn đã không thực sự thử điều đó, phải không? Bởi vì nó không tìm kiếm các chữ cái ở giữa một lệnh.
alex

@alex: Tôi thực sự muốn nói những từ khóa không được định vị liên tục. Ví dụ: trong cat myfile, tôi muốn tìm kiếm cả hai cmy, nhưng Ctrl + R sẽ không cho phép chỉ định cả hai cùng một lúc.
Tim

Câu trả lời:


12

Nếu bạn chỉ muốn tìm dòng (để chạy bộ nhớ), bạn có thể chỉ cần grep cho phần lệnh bạn nhớ:

history | grep "substring"

2
Làm thế nào mà tôi đã sử dụng các hệ thống * nix trong hơn 5 năm và không biết về historylệnh này cho đến bây giờ? Cảm ơn!
GMA

7

Bash chỉ có một tìm kiếm chuỗi đơn giản, theo như tôi có thể thấy.

Xem xét chuyển sang zsh , có tìm kiếm ký tự đại diện lịch sử. history-incremental-pattern-search-backwardhistory-incremental-pattern-search-forwardkhông bị ràng buộc với các khóa theo mặc định, nhưng bạn có thể liên kết chúng:

bindkey '^X^R' history-incremental-pattern-search-backward
bindkey '^X^S' history-incremental-pattern-search-forward

Sau đó gõ Ctrl+X Ctrl+R ^c*my.


0

Apropose (1) cũng nên trả lại một người đàn ông cho chủ đề nếu người đàn ông có chứa từ đó. Whatis (1) chỉ trả về kết quả khớp tuyệt đối.

Để tham khảo: Apropose == man -k Whatis == man -f

Hai cái này sẽ là một trợ giúp tuyệt vời, cùng với các ký tự đại diện * và?


1
Câu hỏi là về việc tìm kiếm trong lịch sử lệnh trong thiết bị đầu cuối ... (không tìm kiếm trang man) ... nhưng trên một ghi chú hoàn toàn riêng biệt, tôi đã thấy câu trả lời của bạn hữu ích, vì vậy +1 :)
Peter.O

.... Ah đáng yêu, xấu của tôi về người bạn đời đó.
baweaver
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.