Scripting Landscape
ภาพรวมภาษาสคริปต์
เลือกภาษาให้เหมาะกับงานและระบบที่ทีมต้องดูแล แล้วจำกัดขอบเขตการรัน
หัวข้อในบทนี้
ศัพท์ในบทนี้ · กดคำที่ขีดเส้นใต้ในเนื้อหาเพื่อดูความหมายได้ด้วย
- API
- ข้อตกลงวิธีที่โปรแกรมเรียกความสามารถหรือข้อมูลของอีกโปรแกรม
- JSON
- รูปแบบข้อความของ object array และค่าพื้นฐาน
- DOM
- โครงสร้างเอกสารใน browser ที่โปรแกรมเข้าถึงได้
ภาษาแต่ละตัวมีระบบรันและสิทธิ์ต่างกัน
PowerShell Bash Python Batch VBScript และ JavaScript เป็นทางเลือกที่มี ecosystem และกติกาต่างกัน JavaScript ใน browser อยู่ในบริบทเว็บ ส่วน runtime ฝั่ง server มีความสามารถอีกแบบ ไม่ควรนำคำสั่งไปผสมโดยคิดว่าไฟล์นามสกุลหนึ่งทำงานได้ในทุกที่
- PowerShell
เหมาะกับงาน objects และระบบที่มี cmdlets หรือ modules รองรับ
- Bash / Batch
เชื่อมคำสั่งของระบบ แต่ quotes expansion และ error behavior ต่างกัน
- Python
โครงข้อมูล parser libraries และ APIs ต้องมี runtime กับ dependencies
- JavaScript / VBScript
ดู host และข้อจำกัดที่ใช้งาน JavaScript ฝั่ง browser ไม่เหมือน Node.js VBScript ต้องดูการรองรับของระบบ
- Execution context
สคริปต์ใช้สิทธิ์และ environment ของตัวที่รัน ไม่ใช่สิทธิ์ของคนเขียนเสมอ
เริ่มจากงานเล็กที่อ่าน input และแสดงผลก่อนเพิ่มงานเปลี่ยนระบบ การจำกัดขอบเขต target และดูผลก่อนเปลี่ยนช่วยลดความผิดพลาด การเซ็นหรือ execution policy บางแบบช่วยตามเงื่อนไขของระบบ แต่ไม่แทนการตรวจว่าตัวสคริปต์ทำอะไรและได้รับสิทธิ์เท่าใด
ภาษาสำหรับงานดูแลระบบPowerShell, Bash and Python · 14.2.1
PowerShell เหมาะกับงานที่ใช้เครื่องมือระบบ Windows Bash เชื่อม CLI Python ประมวลข้อมูลและบริการ
เลือกภาษาให้ตรงระบบและงาน PowerShell เด่นเรื่อง Windows object และการบริหาร Bash เหมาะกับประสานเครื่องมือบนระบบ Unix Python เหมาะกับ parsing และ logic ที่ซับซ้อน ไม่มีตัวใดเหมาะที่สุดทุกงาน
ระบบที่ต้องจัดการ
ข้อความ object หรือ structured data
คนและเครื่องมือที่ดูแลต่อ
งาน registry หรือ service Windows อาจสั้นใน PowerShell งานส่งหลาย command Linux อาจใช้ Bash ส่วนรวบหลาย แปลง เป็น report อาจใช้ Python ดูทีมที่ต้องบำรุงต่อด้วย
ที่มาของหัวข้อนี้ · 3 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Operating Systems and You: Becoming a Power User · Module 1: Navigating the SystemVideo: Windows PowershellIT3.M1.V25
- Tools of the Trade: Linux and SQL · Module 3: Linux commands in the Bash shellVideo: Linux commands via the Bash shellCY4.M3.V2
- Automate Cybersecurity Tasks with Python · Module 1: Introduction to PythonVideo: Python and cybersecurityCY7.M1.V4
สคริปต์ที่อาจพบในระบบเดิมBatch, VBScript and JavaScript · 14.2.2
Batch VBScript และ JavaScript อาจอยู่ในงานเดิม ต้องรู้ runtime และข้อจำกัดก่อนเปลี่ยน
Batch และ VBScript พบในระบบหรือ automation เดิม ส่วน JavaScript ใช้ทั้ง browser และ runtime อื่น ต้องแยก runtime ก่อนดู syntax เรียนเพิ่มตามระบบที่รับผิดชอบแทนสะสมภาษาโดยไม่มีงาน
ไวยากรณ์ที่เขียน
สิ่งที่รันและ API ที่มี
พฤติกรรมของระบบเดิม
ไฟล์ .js ที่ใช้ document ต้องรันในบริบทเว็บ ส่วน Node.js ไม่มี ให้เอง สคริปต์ legacy ต้องดู dependency และสิทธิ์ก่อนย้ายภาษา เพราะผลลัพธ์เหมือนกันยังอาจมีพฤติกรรมต่างกัน
ที่มาของหัวข้อนี้ · 1 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Technical Support Fundamentals · Module 5: SoftwareReading: Common Scripting SolutionsIT1.M5.R1
สิทธิ์และการรันสคริปต์อย่างรอบคอบScript Permissions and Safe Execution · 14.2.3
ตรวจสิทธิ์ เป้าหมาย และผลที่จะเปลี่ยน ใช้โหมดแสดงแผนก่อนเขียนเมื่อออกแบบได้
Script ทำอะไรได้ตามสิทธิ์ของผู้รัน ไม่ตามความสั้นของไฟล์ ตรวจต้นทาง scope input และผลข้างเคียงก่อนใช้ Execution policy ของ PowerShell ช่วยควบคุมรูปแบบการรันบางอย่างแต่ไม่ใช่ security boundary ที่แทน permission
รู้ที่มาและพฤติกรรม
สิทธิ์เท่าที่งานใช้
เป้าหมายที่ตรวจและยืนยันได้
โค้ดลบไฟล์ต้องยืนยัน absolute target และมี preview ที่เชื่อถือได้ก่อนเขียน งานอ่าน log ไม่ควรต้อง admin อย่าปิดการปกป้องทั้งเครื่องเพื่อให้ script หนึ่งรันได้โดยยังไม่รู้ว่าติดเงื่อนไขอะไร
ที่มาของหัวข้อนี้ · 1 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Tools of the Trade: Linux and SQL · Module 3: Linux commands in the Bash shellReading: Responsible use of sudoCY4.M3.R10
นำศัพท์มาเชื่อมกับงาน
สคริปต์ลบ log ควรระบุโฟลเดอร์และอายุไฟล์ชัดเจน ไม่ไล่ลบจากตำแหน่งปัจจุบันโดยเดา
สิ่งที่บทนี้เชื่อมไว้
เลือกภาษาให้เหมาะกับงานและระบบที่ทีมต้องดูแล แล้วจำกัดขอบเขตการรัน
ใช้ภาพกับตัวอย่างด้านบนเชื่อมหน้าที่ของแต่ละส่วน แล้วตรวจความเข้าใจด้วยการอธิบายเหตุผลของผลที่เห็น ก่อนเปิดบทถัดไป
บทเรียนที่เกี่ยวข้องและที่มาของบทอ่าน
คำอธิบายหน้านี้เขียนใหม่ตามหัวข้อใน Atlas รายการด้านล่างเป็นชื่อ Video/Reading ที่เคยจับคู่ไว้ แสดงไว้ให้ตรวจที่มาของชื่อหัวข้อ และไม่รับรองว่าคอร์สสอนทุกส่วนของคำอธิบายนี้