Cari perintah dalam riwayat dengan kata kunci tidak terputus


12

Saya bertanya-tanya bagaimana cara mencari perintah dalam sejarah tanpa mengetahui beberapa huruf pertama dari perintah?

Saat mencari menggunakan Ctrl- Rdalam bash, kita harus memberikan beberapa huruf pertama dari perintah. Bagaimana jika saya hanya mengenal beberapa karakter di tengah, atau beberapa di awal dan beberapa di tengah?

Misalnya, untuk mencari cat myfile, saya hanya tahu ada atdi dalamnya, atau cdi awal dan mydi tengah suatu tempat. kata kunci harus selalu diposisikan. Misalnya, dalam cat myfile, saya ingin mencari keduanya cdan my, tetapi Ctrl+Rtidak akan mengizinkan untuk menentukan keduanya secara bersamaan.


2
Saya menggunakan Ctrl-R sepanjang waktu dan mencari teks tengah secara otomatis. Tidak ada yang mewah, tetapi dalam contoh Anda mengetik saja mysudah cukup. RHEL4 dan Cygwin dikonfirmasi.
Aaron D. Marasco

@ Tim: Anda tidak benar-benar mencobanya, bukan? Karena memang mencari huruf di tengah-tengah perintah.
alex

@alex: Saya sebenarnya ingin mengatakan kata kunci yang tidak diposisikan secara terus-menerus. Misalnya, dalam cat myfile, saya ingin mencari keduanya cdan my, tetapi Ctrl + R tidak akan mengizinkan untuk menentukan keduanya secara bersamaan.
Tim

Jawaban:


12

Jika Anda hanya mencari untuk menemukan garis (untuk joging ingatan Anda), Anda bisa mengambil bagian dari perintah yang Anda ingat:

history | grep "substring"

2
Bagaimana mungkin saya telah menggunakan sistem * nix selama 5+ tahun dan tidak tahu tentang historyperintah sampai sekarang? Terima kasih!
GMA

7

Bash hanya memiliki pencarian string sederhana, sejauh yang saya bisa lihat.

Pertimbangkan beralih ke zsh , yang memiliki penelusuran wildcard riwayat. history-incremental-pattern-search-backwarddan history-incremental-pattern-search-forwardtidak terikat pada kunci secara default, tetapi Anda dapat mengikatnya:

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

Kemudian ketik Ctrl+X Ctrl+R ^c*my.


0

Apropos (1) juga harus mengembalikan seorang pria untuk subjek tersebut jika pria tersebut mengandung kata itu. Whatis (1) hanya mengembalikan kecocokan mutlak.

Untuk referensi: Apropos == man -k Whatis == man -f

Keduanya harus sangat membantu, bersama dengan wildcard * dan?


1
Pertanyaannya adalah tentang mencari melalui histori perintah di terminal ... (tidak mencari halaman manual) ... tetapi pada catatan yang sepenuhnya terpisah, saya menemukan jawaban Anda berguna, jadi +1 :)
Peter.O

.... Ah sayang, salahku pada teman satu itu.
baweaver
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.