ฉันจะจำคำสั่งเฉพาะจากประวัติคำสั่งได้อย่างไรโดยไม่ต้องดำเนินการ


13

ยกตัวอย่างเช่นในทุบตีฉันสามารถพิมพ์ซึ่งจะเรียกใช้คำสั่งสุดท้ายที่ผมเริ่มต้นด้วยการพิมพ์!xyzxyz

ฉันจะเรียกใช้คำสั่งสุดท้ายที่ฉันพิมพ์ขึ้นต้นด้วยxyzแต่ไม่ดำเนินการได้อย่างไร
เช่นเพื่อให้ฉันสามารถเปลี่ยนพารามิเตอร์ก่อนที่จะดำเนินการ ....

คำตอบ:


20

คุณสามารถทำเช่นนี้ในคำสั่งกดพรอมต์Ctrl+ แล้วพิมพ์คำสั่งที่คุณต้องการที่จะเรียกคืนในกรณีของคุณr xyzนี่จะแสดงคำสั่งทั้งหมดให้คุณโดยไม่ต้องดำเนินการใด ๆ


1
มีประโยชน์มากกว่า!โน้ตเพราะคุณสามารถกด Ctrl-r หลาย ๆ ครั้งเพื่อวนรอบต่อไปในประวัติการจับคู่ เมื่อคุณมาถึงสถานที่ที่เหมาะสมคุณสามารถลองดำเนินการไม่ได้ด้วย Enter แต่ด้วย Ctrl-o เพื่อผลกำไรมาก
kubanczyk

12

ลอง!xyz:p; มันจะจำคำสั่งไปที่ด้านบนสุดของประวัติศาสตร์โดยไม่ต้องดำเนินการดังนั้นเช่นลูกศรขึ้นสามารถเข้าถึงได้ทันทีสำหรับการแก้ไขแบบโต้ตอบ

นอกจากนี้ฉันได้ฝึกทำสิ่งนี้เมื่อเรียกคืนคำสั่งด้วย regexp ที่สามารถขุดสิ่งที่สร้างความเสียหายนับตั้งแต่รีบร้อน!rตั้งใจที่จะจำrsync ...คำสั่งล่าสุดดึงกลับและดำเนินการrm *สิ่งที่ถูกผลักไปยังกองซ้อน อีกไม่นานกว่า rsync


ขอบคุณนั่นเป็นแนวทางปฏิบัติที่ดี ฉันทำแบบเดียวกันโดยที่rm -rf ./*ไม่เคยรู้สึกขอบคุณมาก่อนในช่วงเวลาหนึ่ง FYI ใช้!xyz:pงานได้ดีขอบคุณ แต่ต้องการการกดแป้นพิเศษสองสามครั้งกว่าโซลูชัน ctrl-r
Mtl Dev

@MtlDev ใช่; ฉันพบว่าโซลูชัน ^ R ทำงานได้ดีที่สุดสำหรับผู้ที่มีปัญหาสายตาEMACSในขณะที่! -path ทำงานได้ดีที่สุดสำหรับผู้ใช้งานviอย่างฉัน
MadHatter

1
  1. ดำเนินการคำสั่งต่อไปนี้ มันจะสะท้อนคำสั่งดำเนินการล่าสุด คุณสามารถคัดลอกและแก้ไขคำสั่ง คำสั่งนี้ทดสอบในเดเบียน

    ประวัติ | tail -2 | ประวัติ grep -v ตัด -d '' -f4-

  2. หรือกดปุ่ม ctrl + R ค้างไว้แล้วพิมพ์ตัวอักษรเริ่มต้นของคำสั่งสุดท้ายของคุณ มันจะแสดงรายการคำสั่งที่คุณดำเนินการก่อนหน้านี้ตามการป้อนข้อมูลของคุณ เมื่อมันแสดงคำสั่งที่ต้องการเพียงแค่กดลูกศรขวาเพื่อเลือกคำสั่งนั้น


1
คำสั่งแรกนั้นราบรื่นมาก !! ฉันคิดว่ามันเร็วกว่าที่จะดูแลคำสั่งในประวัติศาสตร์มากกว่าการเขียนทั้งหมดนี้ ^ __ ^
Grajdeanu Alex

1

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

$ history | grep WHAT_YOU_LOOK_FOR

หรือ:

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