การกดปุ่ม up น่าเบื่อและอาจพลาดคำสั่งที่ต้องการ ดังนั้นเมื่อพิมพ์history
ที่เทอร์มินัลให้คำสั่งทั้งหมดที่ฉันป้อนไว้ก่อนหน้านี้ให้ทำดัชนีกับตัวเลข มีวิธีใดบ้างที่ฉันจะสามารถโทรหาหมายเลขที่เกี่ยวข้องกับคำสั่งได้?
การกดปุ่ม up น่าเบื่อและอาจพลาดคำสั่งที่ต้องการ ดังนั้นเมื่อพิมพ์history
ที่เทอร์มินัลให้คำสั่งทั้งหมดที่ฉันป้อนไว้ก่อนหน้านี้ให้ทำดัชนีกับตัวเลข มีวิธีใดบ้างที่ฉันจะสามารถโทรหาหมายเลขที่เกี่ยวข้องกับคำสั่งได้?
คำตอบ:
ประวัติทุบตีสามารถทำสิ่งที่เป็นประโยชน์มากมายและการค้นหาด้วยStrg-r
เทอร์รี่วังกล่าวถึงเป็นสิ่งสำคัญในหมู่พวกเขา แต่ก็เป็นไปได้ที่จะทำสิ่งที่คุณขอ
!!
คุณสามารถทำคำสั่งก่อนหน้านี้มี ด้วยสิ่งนี้คุณยังสามารถแก้ไขคำสั่งก่อนหน้า ตัวอย่างเช่นคุณลืมที่จะรับสิทธิ์พิเศษสำหรับคำสั่ง
apt-get install a-long-list-of-packages
คุณไม่ต้องพิมพ์ซ้ำทั้งหมดอีกครั้ง แทนที่จะโทรมา
sudo !!
หากคุณต้องการรันคำสั่งอีกครั้งที่ตำแหน่งเฉพาะจากประวัติของคุณคุณสามารถใช้!
ตัวอย่างเช่น
!3
เพื่อเรียกใช้งานคำสั่งอีกครั้งที่ตำแหน่ง 3 โปรดทราบว่าสิ่งนี้นับจากด้านบน ดังนั้นหากคุณเก็บคำสั่ง 500 คำสั่งในประวัติของคุณ!1
จะเป็น "คำสั่ง 500 คำสั่งที่ผ่านมา" คุณสามารถใช้ตัวเลขติดลบได้ ตัวอย่างเช่น
!-2
จะเรียกใช้คำสั่งสุดท้ายชุดที่สองอีกครั้ง
คุณยังสามารถเรียกใช้คำสั่งล่าสุดอีกครั้งที่เริ่มต้นด้วยสตริงเช่น
!apt-
ซึ่งจะทำบรรทัดสุดท้ายที่เริ่มต้นด้วย "apt-" อีกครั้ง หากคุณต้องการคำสั่งสุดท้ายที่สตริงปรากฏที่ใดก็ได้ในบรรทัดคุณสามารถใช้สิ่งที่ต้องการ
!?pt-ge
มีสิ่งที่น่าสนใจมากกว่าที่ประวัติศาสตร์ทุบตีสามารถทำได้ เพียงแสดงความเป็นไปได้ที่หลากหลายคุณสามารถเข้าถึงพารามิเตอร์ของคำสั่งจากประวัติ ดังนั้น
!-5:3:p
จะพิมพ์พารามิเตอร์ที่สามไปยังที่ห้าจากคำสั่งสุดท้าย
แก้ไข: เกี่ยวกับความคิดเห็นของ Rudie ด้านล่างด้วยการตั้งค่ามาตรฐานการขยายประวัติทุบตีนี้จะดำเนินการโดยตรงแน่นอน มันอาจจะอธิบายได้ดีที่สุดเช่นนี้การเรียกเช่น!-3
นั้นถูกแทนที่ด้วยเชลล์ด้วยคำสั่งสุดท้ายลำดับที่สามจากประวัติของคุณจากนั้นดำเนินการอินพุตของคุณ (พร้อมการแทนที่) ดังนั้นหากคุณพิมพ์!-3
และกดENTER
และคำสั่งสุดท้ายที่สามคือls ~
มันจะมีผลเหมือนกับที่คุณพิมพ์ls ~
อีกครั้งและกดENTER
"ด้วยตัวคุณเอง"
หากคุณไม่ต้องการสิ่งนั้นคุณสามารถตั้งค่าตัวเลือกเชลล์histverify
ได้ สำหรับการตั้งค่าและการยกเลิกการตั้งค่าตัวเลือกเชลล์คุณอาจต้องการอ่านshopt
คำสั่ง ด้วยhistverify
set การโทรอย่าง!-3
เดียวจะเขียนการแทนที่จากประวัติของคุณไปยังบรรทัดคำสั่งของคุณ แต่ไม่ดำเนินการโดยตรง คุณต้องรีบกดสิ่งที่สำคัญออกไปENTER
หรืองดเว้นหากคุณเลือก
!
สวยอันตรายแช่ง ... ฉันต้องการที่จะรู้ว่าสิ่งที่!-4
ไม่ตรงก่อนที่จะใช้มัน หรือมันจะแสดงให้คุณก่อน? สรุปเด็ด!
!-238
ชอบ ไม่ควรยากเกินไปที่จะจดจำคำสั่งสุดท้ายที่สองที่สามที่ผ่านมาอาจจะเป็นคำสั่งสุดท้ายที่คุณมักจะใช้กับ Linux (และที่จริงแล้วด้วยการคำนวณทั่วไป) คาดว่าคุณรู้ว่าคุณกำลังทำอะไรอยู่ และถ้าคุณต้องการเครือข่ายความปลอดภัยเพิ่มเติมจริง ๆ มันก็shopt
อยู่ห่างออกไปหนึ่งเดียว)
ใช่แล้ว ตัวอย่างเช่นหากคุณต้องการรันคำสั่งที่มีหมายเลข 1234 อยู่ข้างๆให้ทำ:
!1234
สิ่งที่มีประโยชน์อื่น ๆ :
หากคุณต้องการรันคำสั่งสุดท้ายที่คุณรันให้ทำ:
!!
หากคุณต้องการรันls
คำสั่งสุดท้ายที่คุณรันให้ทำ:
!ls
หากคุณเพิ่งวิ่งls /some/long/path
และคุณต้องการที่cd
จะทำ:
cd !$
สำหรับข้อมูลเพิ่มเติม:
ใช้การผสมคีย์Ctrl
- r
คุณจะสามารถใช้คำสำคัญเพื่อค้นหาประวัติทุบตี
การอ้างอิงการเชื่อมโยงคีย์ bash อย่างรวดเร็ว: http://ss64.com/bash/syntax-keyboard.html
หากคุณพบว่าจำนวนประวัติศาสตร์ของคำสั่งและคุณต้องการที่จะดำเนินการได้อีกครั้งประเภท!
ตามด้วยหมายเลขเช่นและกด!1234
Enterนี้เป็นส่วนหนึ่งของการขยายตัวของประวัติศาสตร์ ; คุณสามารถตะปูตัวดัดแปลงลงบนมันได้
หากคุณต้องการแก้ไขคำสั่งก่อนเรียกใช้งานให้fc 1234
เรียกใช้ตัวแก้ไขภายนอก
แต่ดังที่ Terry Wang กล่าวถึงแล้วมักจะมีวิธีการค้นหาคำสั่งในประวัติศาสตร์ได้เร็วกว่าการระบุหมายเลขประวัติรวมถึงCtrl+ Rเพื่อเรียกใช้การค้นหาแบบเพิ่มเติม (กดEnterเมื่อคุณพบคำสั่งที่คุณต้องการเรียกใช้) หรือfc PREFIX
ดำเนินการก่อนหน้า PREFIX
คำสั่งเริ่มต้นด้วย
history
คำสั่งจะแสดงคำสั่งทั้งหมดและตัวเลขที่เกี่ยวข้อง หากคุณต้องการตรวจสอบอย่างรวดเร็วก่อนดำเนินการบรรทัดคำสั่ง # 135 คุณสามารถพิมพ์:
echo !135
สิ่งนี้จะแสดงให้คุณเห็นว่าจะมีการดำเนินการอย่างไร