ค้นหาคำสั่งในประวัติศาสตร์ด้วยคำหลักที่ไม่ต่อเนื่อง


13

ฉันสงสัยว่าจะค้นหาคำสั่งในประวัติศาสตร์โดยไม่ทราบตัวอักษรสองสามตัวแรกของคำสั่งได้อย่างไร

เมื่อค้นหาโดยใช้Ctrl- Rใน bash เราจะต้องให้ตัวอักษรสองสามตัวแรกของคำสั่ง ถ้าฉันรู้จักตัวละครบางตัวที่อยู่ตรงกลางหรือบางตัวที่จุดเริ่มต้นและบางตัวที่อยู่ตรงกลาง

ตัวอย่างเช่นในการค้นหาcat myfileฉันรู้เพียงว่ามีอยู่atในนั้นหรือcที่จุดเริ่มต้นและmyตรงกลางที่ใดที่หนึ่ง คำหลักจะต้องอยู่ในตำแหน่งอย่างต่อเนื่อง ยกตัวอย่างเช่นในcat myfileผมอยากที่จะค้นหาทั้งcและmyแต่Ctrl+Rจะไม่อนุญาตให้มีการระบุทั้งสองพร้อมกัน


2
ฉันใช้ Ctrl-R ตลอดเวลาและค้นหาข้อความกลางโดยอัตโนมัติ ไม่มีอะไรแฟนซี แต่ในตัวอย่างของคุณเพียงแค่พิมพ์myจะเพียงพอ RHEL4 และ Cygwin ยืนยันแล้ว
Aaron D. Marasco

@Tim: จริง ๆ แล้วคุณไม่ได้ลองใช่มั้ย เพราะมันจะค้นหาตัวอักษรที่อยู่ตรงกลางของคำสั่ง
alex

1
@alex: ฉันต้องการพูดคำหลักที่ไม่ได้อยู่ในตำแหน่งที่ต่อเนื่อง ตัวอย่างเช่นในcat myfileฉันต้องการค้นหาทั้งสองcและmyแต่ Ctrl + R จะไม่อนุญาตให้ระบุทั้งสองพร้อมกัน
ทิม

คำตอบ:


12

หากคุณต้องการค้นหาบรรทัด (เพื่อเขย่าหน่วยความจำของคุณ) คุณสามารถ grep สำหรับส่วนของคำสั่งที่คุณจำได้:

history | grep "substring"

2
ฉันใช้ระบบ * nix มานานกว่า 5 ปีแล้วและยังไม่รู้เกี่ยวกับhistoryคำสั่งจนถึงตอนนี้อย่างไร ขอบคุณ!
GMA

8

Bash มีการค้นหาสตริงแบบง่าย ๆ เท่าที่ฉันเห็น

ลองเปลี่ยนไปใช้zshซึ่งมีการค้นหาตัวแทนประวัติศาสตร์ history-incremental-pattern-search-backwardและhistory-incremental-pattern-search-forwardจะไม่ผูกติดกับคีย์ตามค่าเริ่มต้น แต่คุณสามารถผูกกับคีย์ได้:

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

Ctrl+X Ctrl+R ^c*myประเภทแล้ว


0

Apropos (1) ควรส่งคืนผู้ชายสำหรับหัวเรื่องด้วยถ้าผู้ชายมีคำนั้น Whatis (1) ส่งคืนการจับคู่แบบสัมบูรณ์เท่านั้น

สำหรับการอ้างอิง: Apropos == man -k Whatis == man -f

สองสิ่งนี้ควรเป็นความช่วยเหลือที่ดีพร้อมกับ wildcard * และ?


1
คำถามคือเกี่ยวกับการค้นหาผ่านคำสั่งประวัติในterminal ... (ไม่ค้นหาหน้าคน) ... แต่ในบันทึกแยกสมบูรณ์ฉันไม่พบคำตอบของคุณมีประโยชน์ดังนั้น +1 :)
Peter.O

.... อ่าน่ารักแย่มากกับเพื่อนคนหนึ่ง
baweaver
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.