NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
TH

คำสั่ง Linux และทักษะเชลล์

การเขียนสคริปต์ Perl: มีดทหารสวิสของ Sysadmin ยังคงคมชัด

Perl เข้ามาแทนที่ด้วยการเป็นเครื่องมือประมวลผลข้อความที่ดีที่สุดที่มีอยู่ในช่วงทศวรรษ 1990 และไม่เคยหายไปจากที่ไหนเลย โดยจะจัดส่งในทุกการติดตั้งพื้นฐาน ขับเคลื่อนเครื่องมืออย่างเงียบๆ ที่ไม่มีใครคิด (SpamAssassin, การจัดเตรียมสคริปต์, ปลั๊กอินตรวจสอบ) และอัดแน่นไปด้วยพลัง regex แบบ one-liners ที่เข้าถึงได้อย่างสะดวกสบายไม่มีที่อื่น ตำแหน่งสมัยใหม่ที่ตรงไปตรงมา: awk และ Python ครอบคลุมโค้ดใหม่ส่วนใหญ่ และบทบาทที่แท้จริงของ Perl คือการอ่านสคริปต์เก่า การผ่าตัดข้อความฉุกเฉิน และบรรทัดเดียวที่จะกลายเป็นสองบรรทัดในที่อื่น ไม่มีใครยกย่องไวยากรณ์ ทุกคนในการค้าขายนี้ยังคงได้รับประโยชน์จากมัน

ประเด็นสำคัญ

  1. สายการบินเดียวคือศิลปะที่ยังมีชีวิตรอด: ไฟล์ perl -pi -e 's/old/new/g' สำหรับแบบแทนที่ (งานของ sed, regex ของ Perl), -ne เพื่อทดสอบบรรทัดและ -lanE สำหรับงานคอลัมน์ที่การแยกอัตโนมัติใช้งานได้
  2. ธงเป็นกล้ามเนื้อที่บันทึกไว้: -p พิมพ์แต่ละบรรทัดหลังจากที่โค้ดของคุณทำงาน, -n วนซ้ำโดยไม่พิมพ์, -e ฟีดโค้ด, -i แก้ไขในตำแหน่ง (พร้อมส่วนต่อท้ายสำรองที่เป็นตัวเลือก), -a แยกอัตโนมัติเป็น @F, -F'\t' ตั้งค่ารูปแบบการแยก
  3. โดยที่ Perl ยังคงชนะในปัจจุบัน: ข้อความที่ awk ยอมจำนน (การเข้ารหัสคี่, การอ้างอิงแบบซ้อน, ช่วงเช่น flip-flop 'A..B') และการแปลงใดๆ ที่โปรแกรมทั้งหมดพอดีกับ -e แต่ต้องการอาร์เรย์สถานะและแฮชที่เก็บไว้อย่างสะดวกสบาย
  4. การตรวจสอบความเป็นจริงแบบเดิม: การตรวจสอบปลั๊กอิน การจัดเตรียมไปป์ไลน์ และเครื่องมือเมลที่เขียนด้วย Perl ยังคงมีอยู่ในฟลีตส์ และการเขียนสคริปต์ขายส่ง 200 ตัวใหม่ถือเป็นงบประมาณที่ไม่มีใครเคยอนุมัติ การอ่าน Perl ยังคงเป็นความสามารถ ไม่ใช่สิ่งแปลกใหม่
  5. สุขอนามัยของโมดูล: โมดูลหลักใช้งานกับล่าม และการติดตั้ง CPAN เป็นของงานแบบโต้ตอบเท่านั้น บนเซิร์ฟเวอร์ แนะนำให้ใช้แพ็คเกจ distro (libwww-perl และเพื่อน) เนื่องจากแผนผัง CPAN ที่ไม่มีการจัดการนั้นเป็นการดริฟท์ที่เกิดขึ้นในการตรวจสอบ
  6. แก้ไขข้อบกพร่องของสคริปต์เก่าโดยเพิ่มระเบียบวินัยกลับเข้าไป: ใช้แบบเข้มงวด ใช้คำเตือน และ -w โดยที่สคริปต์เหล่านั้นถูกละเว้น เลขคณิต undef แบบเงียบและตัวแปรแพ็คเกจที่พิมพ์ผิดคือสิ่งที่รอคอยเมื่อสคริปต์ปี 2004 พบกับเซิร์ฟเวอร์ปี 2026
  7. การพกพาส่วนใหญ่เป็นของจริงแต่ไม่ฟรี: สคริปต์ core-Perl เท่านั้นข้าม distros และ Unix โดยมีการเปลี่ยนแปลงเล็กน้อย ในขณะที่ flock semantics และ /proc assumptions จำเป็นต้องตรวจสอบอีกครั้งบนระบบ BSD และ macOS
  8. รู้ช่วงเวลาที่ต้องพับ: สถานะหลายบรรทัด โครงสร้างข้อมูลเชิงลึก หรืออะไรก็ตามที่ต้องการกรอบงานคือประเทศ Python Perl รับงานอย่างร่าเริง และคุณจ่ายบิลความซับซ้อนเพียงลำพังตอนตี 3

บันทึกจากหน้างาน

ฉันเก็บการตรวจสอบ Perl โบราณไว้ในกล่องที่ทันสมัยเป็นเวลาหกปีโดยมีความเข้มงวดมากกว่าเล็กน้อยและคำเตือนได้รับการกู้คืนที่ด้านบนและโมดูลที่บรรจุ distro คำสัญญาที่เขียนซ้ำสามครั้งเสียชีวิตเนื่องจากอายุมากในขณะที่ยังคงทำงานต่อไป

คำถามที่พบบ่อย

วันนี้ฉันควรเขียนโค้ดใหม่ใน Perl หรือไม่?

สำหรับข้อความบรรทัดเดียวหรือการบำรุงรักษาภายในโค้ดเบส Perl ที่มีอยู่เท่านั้น กาวเซิร์ฟเวอร์ใหม่ไปที่ Python ซึ่งชัดเจนกว่าและจ้างได้ Perl ยังคงความเป็นเลิศในงานที่บรรทัดเดียวสามารถรองรับได้

เหตุใด Perl จึงสูญเสียมงกุฎไป?

ไม่มีอะไรที่น่าทึ่ง: ไวยากรณ์ที่ลงโทษฐานโค้ดขนาดใหญ่ ตลาดการจ้างงานที่เคลื่อนไปตามโมเมนตัมในรูปแบบของ Python มากกว่าข้อดี และ Perl 6/Raku แยกการรับรู้ที่สับสน ในขณะที่ Perl 5 ยังคงยอดเยี่ยมอย่างเงียบ ๆ

perl -lane หรือ awk สำหรับการแยกวิเคราะห์ฟิลด์?

เรียนรู้ทั้งสองอย่างคร่าวๆ: awk สำหรับงานคอลัมน์ขนาดเล็ก - การแบ่งอัตโนมัติของเลนสำหรับวันที่ตัวคั่นหรือรูปร่างของบันทึกดูแปลกๆ เลือก Perl เมื่อ regex กำลังทำการยกของหนัก awk เมื่อคำนวณเลขคณิตในคอลัมน์

สคริปต์ Perl แบบเก่าปลอดภัยที่จะทำงานต่อไปหรือไม่

โดยปกติแล้ว ตามหลักสุขอนามัย: พินโมดูลตั้งค่าผ่านแพ็คเกจ distro ทดสอบสำเนาก่อนที่จะอัปเกรดล่าม และกู้คืนความเข้มงวด/คำเตือนที่ด้านบน ความเสี่ยงที่แท้จริงคือพฤติกรรมที่เงียบงัน ไม่ใช่ภาษา

Kinetikatech ช่วยเรื่อง คำสั่ง linux และทักษะเชลล์ ได้อย่างไร

นี่คือสิ่งที่เราทำทุกวัน: คำสั่งและพฤติกรรมการเขียนสคริปต์ที่ตัดสินใจว่าผู้ดูแลระบบจะใช้งานเซิร์ฟเวอร์หรือต่อสู้กับเซิร์ฟเวอร์: ค้นหา แปลง ถ่ายโอน และดูแลข้อความและกระบวนการด้วยเครื่องมือที่อยู่ในทุกการติดตั้งฐาน บริการ ความปลอดภัยเซิร์ฟเวอร์ Linuxและการจัดการเซิร์ฟเวอร์ ของเราดูแลครบวงจร ตั้งแต่ประเมิน ลงมือทำ ติดตาม 24 ชั่วโมง ไปจนถึงรับเรื่องฉุกเฉินภายใน 30 นาที

คุยกับช่างเทคนิค

เซิร์ฟเวอร์มีปัญหา? เว็บถูกแฮก? โหลดช้า?

ตอบสนองเหตุกรณ์ฉุกเฉินใน 30 นาที — ตลอด 24 ชั่วโมง ทุกวัน

ขอความช่วยเหลือฉุกเฉิน support@kinetikatech.com