Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

Bash Tips and Tricks: ทำงานในเทอร์มินัลให้เก่งขึ้น

ในฐานะ Linux users เป็น special moment เมื่อเปิดเทอร์มินัลครั้งแรกและเริ่มทำงานบนระบบอย่างมีประสิทธิภาพ ทรงพลัง และยืดหยุ่น แตการลองใช้เทอร์มินัลครั้งแรกอาจ intimidating เพราะมีแค่ cursor กระพริบและความเป็นไปได้ไม่มีที่สิ้นสุด เพื่อช่วยเหลือ นี่คือ Bash tips และ tricks ทำงาน smarter, not harder ในเทอร์มินัล

หาคำสั่งด้วย Apropos

Apropos (อ่านว่า app-row-POE) เป็นคำสั่งหา commands ที่มี man หรือ manual entries ตาม description ถ้าเคยดู man page ของคำสั่ง จะประมาณนี้:

ส่ว "NAME" บนสุดคือสิ่งที่พูดถึง ถ้าอยากหา ping ด้วย apropos พิมพ์ apropos icmp ในเทอร์มินัล Enter ไม่ case sensitive ดึงทุกคำสั่งที่ NAME entry มี "ICMP"

การใช้ apropos อีกอย่างเยี่ยมคือ explore tools ที่ไม่คุ้นเคย เช่น selinux รัน apropos selinux จะได้ list คำสั่งทั้งหมดที่โต้ตอบกับ SELinux เริ่มต้น enforce ได้อย่างมีประสิทธิภาพ

แทนที่ในคำสั่งก่อนหน้า

สิ่งที่ประหยัดเวลามากคือการ substitute something ในคำสั่งก่อนหน้า ถ้าพิมพ์ผิดหรือต้องแทนที่ option ในคำสั่งก่อน ใช้ ^ key ดึงคำที่พิมพ์ผิด แล้ว ^ อีกอันใส่คำ/option ที่ต้องการ

ดูตัวอย่าง อยาก ping "maketecheasier.com" เช็ค internet connectivity (รวม DNS) ถ้าพิมพ์ผิด maktecheaser.com (ขาด "i") จะมีปัญหา

แทนที่ option ที่พิมพ์ผิด: พิมพ์ ^maktecheaser.com^maketecheasier.com คำสั่งจะรันได้ถูกต้อง ตัวอย่างง่าย แตถ้ารัน long command หลาย options หรือ misdirect output/errors การแทนที่ > เป็น >> ในคำสั่งซับซ้อนคือชีวิต

ตัวอย่างกับ systemd และ systemctl บ่อยครั้งรัน subcommands ต่างๆ เช่น start, stop, enable, disable service แค่ sub พวกมันด้วย ^start^enable ประหยัดเวลา

!! (bang-bang)

นี้ useful มากใน scenario เฉพาะที่เกิดบ่อย !! ดึงคำสั่งก่อนหน้ามาเต็มอัน อาจดูไม่ useful แตถ้าคิดถึงครั้งที่พิมพ์คำสั่งที่ต้อง sudo จะเข้าใจว่ามัน useful ที่ไหน

ตัวอย่างดีคือ install scripts พูดว่ารัน install script ด้วย "./SCRIPT-NAME.sh" แตบอกว่าต้อง sudo พิมพ์ sudo !! ใส่รหัสผ่าน พร้อมแล้ว ประหยัดเวลามาก และติด muscle memory จะทำได้เร็วกว่าตอนทำผิด

ส่ง arguments จากคำสั่งก่อนหน้า

ใช้ !$ ส่ง argument ตัวสุดท้ายจากคำสั่งไปคำสั่งปัจจุบัน และ slight variations ส่ง argument ใดๆ ก็ได้ไปคำสั่งปัจจุบัน

ดูตัวอย่าง กำลัง edit script ใช้คำสั่ง nano samplescript.sh จบแล้วอยากทำให้ executable เปลี่ยน octal permissions เป็น 755 ใช้ chmod 755 !$ แล้วอยากดึงชื่อ script อีก ใช้ ./!:2 ดึง argument ตัวที่ 2

ตัวอย่างอื่นๆ:

!^ - first argument
!* - all arguments
!:2-$ - second through last arguments
!:2-4 - second through fourth arguments

แทนที่ตัวเลขดึง arguments ใดๆ ที่ต้องการ Bash เก็บเกือบ 100 arguments ไว้ด้วยวิธีนี้ ทำงานเร็วผ่าน menial tasks ได้ง่าย

หวังว่าเพลิดเพลินกับ Bash tips และ tricks ช่วยทำงาน smarter ในเทอร์มินัล ควรเรียนรู้ Bash variables และ special characters ด้วย