<ก่อนหน้านี้ | Contents | ถัดไป>
ประวัติการค้นหา
เราสามารถดูเนื้อหาของรายการประวัติได้ตลอดเวลาโดย:
[me@linuxbox ~]$ ประวัติศาสตร์ | น้อย
[me@linuxbox ~]$ ประวัติศาสตร์ | น้อย
ตามค่าเริ่มต้น bash จะเก็บ 500 คำสั่งล่าสุดที่เราป้อน แม้ว่าการแจกจ่ายที่ทันสมัยส่วนใหญ่จะตั้งค่านี้เป็น 1000 เราจะดูวิธีการปรับค่านี้ในบทต่อ ๆ ไป สมมติว่าเราต้องการค้นหาคำสั่งที่เราใช้ในการแสดงรายการ / usr / bin. วิธีหนึ่งที่เราสามารถทำได้:
[me@linuxbox ~]$ ประวัติศาสตร์ | grep /usr/bin
[me@linuxbox ~]$ ประวัติศาสตร์ | grep /usr/bin
และสมมติว่าในผลลัพธ์ของเรา เราได้บรรทัดที่มีคำสั่งที่น่าสนใจดังนี้:
88 ls -l /usr/bin > ls-output.txt
หมายเลข “88” คือหมายเลขบรรทัดของคำสั่งในรายการประวัติ เราสามารถใช้สิ่งนี้ได้ทันทีโดยใช้ส่วนขยายประเภทอื่นที่เรียกว่า การขยายประวัติศาสตร์. เพื่อใช้บรรทัดที่ค้นพบของเรา เราสามารถทำได้:
[me@linuxbox ~]$ ! 88
[me@linuxbox ~]$ ! 88
bash จะขยาย "!88" ลงในเนื้อหาของบรรทัดที่แปดสิบแปดในรายการประวัติ มีการขยายประวัติศาสตร์รูปแบบอื่นๆ ที่เราจะกล่าวถึงในภายหลัง
bash ยังให้ความสามารถในการค้นหารายการประวัติเพิ่มขึ้น ซึ่งหมายความว่าเราสามารถบอกให้ bash ค้นหารายการประวัติเมื่อเราป้อนอักขระ โดยอักขระเพิ่มเติมแต่ละตัวจะปรับแต่งการค้นหาของเราเพิ่มเติม หากต้องการเริ่มการค้นหาแบบเพิ่มหน่วย ให้กด Ctrl-r ตามด้วยข้อความที่คุณกำลังค้นหา เมื่อคุณพบแล้ว คุณสามารถกด Enter เพื่อดำเนินการคำสั่งหรือกด Ctrl-j เพื่อคัดลอกบรรทัดจากรายการประวัติไปยังบรรทัดคำสั่งปัจจุบัน หากต้องการค้นหาข้อความถัดไป (เลื่อน "ขึ้น" รายการประวัติ) ให้กด Ctrl-r อีกครั้ง หากต้องการออกจากการค้นหา ให้กด Ctrl-g หรือ Ctrl-c ที่นี่เราเห็นมันในการดำเนินการ:
[me@linuxbox ~]$
[me@linuxbox ~]$
กดครั้งแรก Ctrl-r:
(reverse-i-search)`':
(reverse-i-search)`':
การเปลี่ยนแปลงแจ้งเพื่อระบุว่าเรากำลังดำเนินการค้นหาแบบเพิ่มส่วนย้อนกลับ มันเป็นการ "ย้อนกลับ" เพราะเรากำลังค้นหาจาก "ตอนนี้" ไปยังบางช่วงเวลาในอดีต ต่อไป เราเริ่มพิมพ์ข้อความค้นหาของเรา ในตัวอย่างนี้ “/usr/bin”:
(ย้อนกลับ-i-ค้นหา)`/ usr / bin': ls -l /usr/bin > ls-output.txt
(ย้อนกลับ-i-ค้นหา)`/ usr / bin': ls -l /usr/bin > ls-output.txt
การค้นหาส่งคืนผลลัพธ์ของเราทันที ด้วยผลลัพธ์ของเรา เราสามารถรันคำสั่งได้โดยกด เข้าสู่หรือเราสามารถคัดลอกคำสั่งไปยังบรรทัดคำสั่งปัจจุบันของเราเพื่อแก้ไขเพิ่มเติมโดยกด Ctrl-j. มาคัดลอกกัน กด Ctrl-j:
[me@linuxbox ~]$ ls -l /usr/bin > ls-output.txt
[me@linuxbox ~]$ ls -l /usr/bin > ls-output.txt
เชลล์พรอมต์ของเรากลับมาและบรรทัดคำสั่งของเราโหลดแล้วและพร้อมสำหรับการดำเนินการ! ตารางด้านล่างแสดงรายการการกดแป้นพิมพ์บางส่วนที่ใช้เพื่อจัดการรายการประวัติ:
ตารางที่ 8-5: คำสั่งประวัติ
การดำเนินการที่สำคัญ
การดำเนินการที่สำคัญ
Ctrl-p ย้ายไปที่รายการประวัติก่อนหน้า การกระทำเดียวกับลูกศรขึ้น Ctrl-n ย้ายไปที่รายการประวัติถัดไป การกระทำเดียวกับลูกศรลง Alt-< ย้ายไปที่จุดเริ่มต้น (บนสุด) ของรายการประวัติ
Alt-> ย้ายไปที่ส่วนท้าย (ด้านล่าง) ของรายการประวัติ เช่น บรรทัดคำสั่งปัจจุบัน
Ctrl-r ย้อนกลับการค้นหาที่เพิ่มขึ้น ค้นหาแบบค่อยเป็นค่อยไปจากบรรทัดคำสั่งปัจจุบันในรายการประวัติ
Alt-p ค้นหาย้อนกลับ ไม่เพิ่มขึ้น ด้วยคีย์นี้ ให้พิมพ์สตริงการค้นหาแล้วกด Enter ก่อนทำการค้นหา
Alt-n ค้นหาไปข้างหน้า ไม่เพิ่มขึ้น
Ctrl-o ดำเนินการรายการปัจจุบันในรายการประวัติและเลื่อนไปยังรายการถัดไป สิ่งนี้มีประโยชน์หากคุณพยายามรันลำดับของคำสั่งในรายการประวัติอีกครั้ง