คุณควรอ่านman bashในระบบของคุณโดยเฉพาะในส่วนของReadlineเนื่องจากนี่เป็นกลไกอินพุตแบบโต้ตอบของ bash คู่มือเตะที่ gnu.orgมีส่วนดีในcommandline การแก้ไขที่จะช่วยเติมในบางส่วนของช่องว่าง
โดยค่าเริ่มต้นคุณสามารถใช้สิ่งเหล่านี้เพื่อย้ายไปรอบ ๆบน commandline (เพียงแค่แสดงรายการไม่กี่ที่นี่ดูลิงค์สำหรับรายการทั้งหมด):
- Ctrl+ aย้ายไปที่จุดเริ่มต้นของบรรทัด (หรือHomeขึ้นอยู่กับการตั้งค่าเทอร์มินัล)
- Ctrl+ eย้ายไปที่ท้ายบรรทัด (หรือEnd... )
- Meta+ fเลื่อนไปข้างหน้า "คำ"
- Meta+ bเลื่อนไปข้างหลัง "คำ"
คุณสามารถใช้ข้อความเหล่านี้เพื่อ"ฆ่า" (aka "ตัด") ข้อความจากบรรทัด:
- Ctrl+ kฆ่าข้อความ ("ตัด") จากตำแหน่งเคอร์เซอร์ปัจจุบันไปยังจุดสิ้นสุดของบรรทัด
- Ctrl+ yyanks ("pastes") ข้อความล่าสุดที่ถูกฆ่ากลับเข้าไปในบัฟเฟอร์ที่เคอร์เซอร์
เพื่อให้คุณสามารถรวมสิ่งเหล่านี้เพื่อเลือกกลุ่มคำสั่งที่คุณต้องการทำซ้ำฆ่ามันแล้ววางลงที่ส่วนท้ายของคำสั่งถัดไป
ตอนนี้จะทำให้ความสนุกมากยิ่งขึ้นขอพิจารณาทุบตีของการขยายตัวประวัติศาสตร์ นี่คือที่!!
ที่คำตอบ Studer กล่าวถึง การขยายตัวของประวัติศาสตร์แบ่งลงไปdesignators เหตุการณ์ , designators คำและการปรับเปลี่ยน
นักออกแบบกิจกรรมมีลักษณะเช่นนี้ (ดูลิงค์สำหรับรายการทั้งหมด):
!
- เริ่มการทดแทนประวัติ
!n
- คำสั่งn-thในรายการประวัติของ bash สำหรับจำนวนเต็มn (ใช้ได้สำหรับเนกาทีฟด้วย)
!!
- คำสั่งนำหน้า เทียบเท่ากับ!-1
!string
- คำสั่งล่าสุดที่เริ่มต้นด้วยสตริง
นักออกแบบWordเลือกบางส่วนจากเหตุการณ์ ใช้:
เพื่อแยกเหตุการณ์ออกจากตัวกำหนดคำ คำจะมีหมายเลขตั้งแต่ 0 เริ่มต้นที่จุดเริ่มต้นของบรรทัดและแทรกลงในบรรทัดปัจจุบันคั่นด้วยช่องว่างเดียว
$
- กำหนดอาร์กิวเมนต์สุดท้าย (เช่นอาร์กิวเมนต์!!:$
สุดท้ายของคำสั่งสุดท้ายสามารถย่อให้สั้นลงได้!$
)
n
- กำหนดคำที่n (เช่น!str:2
arg ที่ 2 ของคำสั่งล่าสุดที่เริ่มต้นด้วยstr ; !!:0
คือคำสั่งของคำสั่งสุดท้าย)
ดังนั้นในการติดตามตัวอย่างของคุณหากคำสั่งสุดท้ายของคุณmkdir /some/really/long/path
เพียงแค่เรียกใช้!!
จะเรียกใช้คำสั่งนั้นอีกครั้ง แต่คุณต้องการcd
เข้าสู่เส้นทางนั้นแทน:
$ cd !$
ตอนนี้สมมติว่าคุณทำคำสั่งอื่น ๆ แล้วต้องการอ้างถึงเส้นทางนั้นอีกครั้ง หากนั่นคือคำสั่งmkdirสุดท้ายที่คุณรันคุณสามารถใช้สิ่งนี้เพื่อทำซ้ำเส้นทางนั้น:
$ tar czf ~/foo.tgz !mkdir:$