ในฐานะผู้ใช้ลีนุกซ์ มันเป็นช่วงเวลาพิเศษเมื่อเราเปิดเทอร์มินัลและเริ่มทำงานบนระบบในลักษณะที่มีประสิทธิภาพ ทรงพลัง และยืดหยุ่นที่สุด อย่างไรก็ตาม การจู่โจมครั้งแรกของคุณในเทอร์มินัลอาจดูน่ากลัว เนื่องจากสิ่งที่คุณได้รับคือเคอร์เซอร์กะพริบตาและโลกแห่งความเป็นไปได้ไม่รู้จบ เพื่อช่วยในเรื่องนั้น เราจะแสดงเคล็ดลับและลูกเล่นของ Bash เพื่อทำงานอย่างชาญฉลาดขึ้น ไม่ยากขึ้น ในเทอร์มินัล
การค้นหาคำสั่งด้วย Apropos
Apropos (app-row-POE) เป็นคำสั่งที่ให้คุณค้นหาคำสั่งด้วย man
หรือรายการด้วยตนเองตามคำอธิบาย หากคุณเคยพบ man page ของคำสั่ง หน้าตาจะประมาณนี้:
ส่วน "NAME" ที่ด้านบนคือสิ่งที่ฉันกำลังพูดถึง ถ้าฉันต้องการค้นหา ping
คำสั่งด้วย apropos
ฉันจะพิมพ์ apropos icmp
ลงในเทอร์มินัลของฉันแล้วกด Enter โปรดทราบว่าไม่คำนึงถึงขนาดตัวพิมพ์ ซึ่งจะดึงทุกคำสั่งที่มีรายการ NAME ที่มี “ICMP” อยู่ในนั้น
อีกหนึ่งการใช้งานที่ยอดเยี่ยมสำหรับ apropos
กำลังสำรวจเครื่องมือที่คุณอาจไม่คุ้นเคย เช่น selinux
. การออก apropos selinux
คำสั่งจะแสดงรายการคำสั่งต่างๆ ทั้งหมดที่คุณสามารถใช้โต้ตอบกับ SELinux เพื่อให้คุณเริ่มต้นใช้งานจริงได้อย่างมีประสิทธิภาพ
การแทนที่ในคำสั่งก่อนหน้า
สิ่งที่ช่วยฉันได้มากในเทอร์มินัลคือการหาวิธีแทนที่บางอย่างในคำสั่งก่อนหน้า ถ้าฉันสะกดผิดหรือเพียงแค่ต้องการแทนที่ตัวเลือกในคำสั่งก่อนหน้า ฉันสามารถใช้ ^
แป้นเพื่อดึงคำที่ฉันสะกดผิด แล้วก็อีก ^
เพื่อใส่คำหรือตัวเลือกที่ฉันต้องการ
มาดูตัวอย่างกัน สมมติว่าฉันต้องการ ping “maketecheasier.com” เพื่อให้แน่ใจว่าฉันมีการเชื่อมต่ออินเทอร์เน็ตที่สมบูรณ์ (รวมถึง DNS) แต่ถ้าฉันสะกดผิด ฉันอาจได้รับข้อผิดพลาดบางอย่าง ดังนั้นหากฉัน ping maktecheaser.com โดยไม่ได้ตั้งใจ (ไม่มี “i”) ฉันจะมีปัญหาบางอย่าง
หากต้องการแทนที่ตัวเลือกที่สะกดผิด ฉันสามารถพิมพ์ ^maktecheaser.com^maketecheasier.com
และคำสั่งจะทำงานตามที่คาดไว้ นี่เป็นตัวอย่างง่ายๆ แต่สมมติว่าคุณเรียกใช้คำสั่งแบบยาวที่มีตัวเลือกมากมายหรือกำหนดทิศทางเอาต์พุตหรือข้อผิดพลาดของคำสั่งของคุณผิด สามารถแทนที่ >
สำหรับ >>
ในคำสั่งที่ซับซ้อนคือเครื่องช่วยชีวิต
อีกตัวอย่างหนึ่งคือกับ systemd และ systemctl
สั่งการ. ฉันมักจะออก systemctl
. ที่แตกต่างกันหลายรายการ คำสั่งย่อย เช่น เริ่ม หยุด เปิดใช้งาน หรือปิดใช้งานบริการ ฉันสามารถย่อยได้ด้วย ^start^enable
ซึ่งจะช่วยประหยัดเวลาได้
!!
นี่เป็นเหตุการณ์ที่มีประโยชน์อย่างยิ่งในสถานการณ์หนึ่งที่เกิดขึ้นกับฉันมาก !!
(ปัง-ปัง) จะดึงคำสั่งก่อนหน้าลงแบบเต็ม อาจดูไม่มีประโยชน์ แต่ถ้าคุณคิดถึงทุกครั้งที่คุณพิมพ์คำสั่งที่ต้องเรียกใช้ภายใต้สิทธิ์ของผู้ใช้ขั้นสูง คุณจะเริ่มเข้าใจว่าสิ่งนี้มีประโยชน์อย่างไร
ตัวอย่างที่ดีคือสคริปต์การติดตั้ง สมมติว่าคุณเรียกใช้สคริปต์การติดตั้งด้วย “./SCRIPT-NAME.sh” และบอกว่าคุณต้องเรียกใช้สคริปต์ด้วยสิทธิพิเศษสำหรับผู้ใช้ขั้นสูง เพียงพิมพ์ sudo !!
ป้อนรหัสผ่านของคุณแล้วคุณก็ออกไปแข่งขัน ซึ่งช่วยประหยัดเวลาได้มาก และเมื่อคุณได้ลำดับนั้นในหน่วยความจำของกล้ามเนื้อแล้ว คุณจะทำมันได้เร็วกว่าตอนที่คุณทำผิด
ส่งผ่านอาร์กิวเมนต์จากคำสั่งก่อนหน้า
ใช้ !$
เราสามารถส่งต่ออาร์กิวเมนต์สุดท้ายจากคำสั่งลงไปที่คำสั่งปัจจุบัน และด้วยรูปแบบเล็กน้อย เราสามารถส่งอาร์กิวเมนต์ใดๆ ลงไปที่คำสั่งปัจจุบันของเราได้
มาดูตัวอย่างกัน หากฉันกำลังแก้ไขสคริปต์ ฉันอาจใช้คำสั่ง nano samplescript.sh
. เมื่อฉันใช้สคริปต์นั้นเสร็จแล้ว ฉันต้องการทำให้มันทำงานได้ ดังนั้นฉันจึงอาจเปลี่ยนการอนุญาตเลขฐานแปดเป็น 755 ในการทำเช่นนั้น ฉันสามารถใช้ chmod 755 !$
สั่งการ. จากนั้นหากต้องการดึงชื่อสคริปต์อีกครั้ง ฉันสามารถใช้ ./!:2
เพื่อดึงอาร์กิวเมนต์ที่สองลงมา
ตัวอย่างอื่นๆ:
!^ - first argument !* - all arguments !:2-$ - second through last arguments !:2-4 - second through fourth arguments
คุณสามารถแทนที่ตัวเลขของคุณเพื่อดึงอาร์กิวเมนต์ที่คุณต้องการ Bash จะเก็บอาร์กิวเมนต์ได้เกือบ 100 ข้อด้วยวิธีนี้ และคุณสามารถทำงานง่ายๆ แบบนี้ได้อย่างรวดเร็ว
ฉันหวังว่าคุณจะชอบเคล็ดลับและลูกเล่นของ Bash เหล่านี้เพื่อช่วยให้คุณทำงานอย่างชาญฉลาดยิ่งขึ้นในเทอร์มินัล คุณควรเรียนรู้เกี่ยวกับตัวแปร Bash และอักขระพิเศษด้วย