รู้จัก zsh เมื่อ Apple เปลี่ยนจาก bash มาเป็น zsh ใน macOS Catalina แล้วมันดีกว่ายังไง

ความเปลี่ยนแปลงอย่างหนึ่งของ macOS Catalina ที่หลายคนอาจไม่ทันสังเกต คือในรอบนี้ Apple เปลี่ยน Shell ที่ใช้ใน Terminal จากเดิมที่ใช้ bash มาใช้ zsh (อ่านว่า ซีเชล หรือ แซทเชล) อย่างเป็นทางการ ซึ่งจริง ๆ แล้วเรียกได้ว่าเป็นความเปลี่ยนแปลงเล็กน้อยแต่ก็ถือว่าค่อนข้างสำคัญทีเดียวกับอุปกรณ์ที่อยู่กับ Mac มานานกว่า 10 ปี

วันนี้ ทีมงาน MacThai จะมาอธิบายว่า zsh คืออะไร แล้วทำไม Apple ต้องเปลี่ยนจาก bash เป็น zsh

ก่อนอื่น เราจะต้องมารู้จักกับ Shell ก่อน Shell หรือ Unix Shell เป็นอุปกรณ์สำหรับรันคอมมานด์ไลน์เพื่ออินเตอร์เฟสกับโปรแกรมต่าง ๆ บน Unix ซึ่งในอดีต Shell แตกเป็นหลายกลุ่ม แต่กลุ่มที่นิยมและอยู่มาได้จนถึงปัจจุบันคือ Bourne Shell ที่ใช้คำสั่งว่า sh ซึ่ง Shell ในกลุ่มนี้ก็มีสายย่อยอีกได้แก่ Bourne-again Shell หรือ bash, Korn Shell หรือ ksh, Z Shell หรือ zsh เป็นต้น

เนื่องจาก macOS เป็น Unix แม้ว่าจะไม่ได้ใช้คอมมานด์ไลน์เป็นหลัก แต่ตัว macOS ก็ยังมีแอปชื่อว่า Terminal เอาไว้ใช้รันคอมมานด์ต่าง ๆ อยู่ ดังนั้น Apple ก็ต้องมี Shell สำหรับใช้รันคอมมานด์บน Terminal ด้วย

Apple เลือกใช้ bash หรือ Bourne-again shell เป็น Shell ค่าเริ่มต้นของ Terminal มาตั้งแต่ Mac OS X 10.3 Panther หรือนานกว่า 10 ปีแล้ว และจนถึงทุกวันนี้ Apple ก็ยังคงใช้ bash อยู่ แม้ว่า bash จะมีเวอร์ชัน 4 กับ 5 ออกมาแล้ว แต่ Apple ก็ยังคงใช้ bash 3.2 บน macOS ต่อไป และแพทซ์ล่าสุดคือปี 2014 เพื่อแก้ช่องโหว่ Shellshock

แล้วทำไมถึงต้องเปลี่ยนเป็น zsh

หลายคนอาจจะสงสัยว่า แทนที่ Apple จะเลือก bash เวอร์ชันใหม่ ๆ ทำไม Apple จึงเลือก zsh จุดที่น่าสนใจคือ bash 3.2 ที่ใช้กับ macOS อยู่ภายใต้สัญญาอนุญาต GPLv2 ในขณะที่ bash เวอร์ชันใหม่ ๆ อยู่ภายใต้สัญญาอนุญาต GPLv3 ซึ่ง Apple พยายามเลี่ยงการใช้แพคเกจที่เป็น GPLv3 ใน macOS อยู่แล้ว เนื่องจากตัวสัญญาอนุญาตจะเข้มงวดกว่าเดิม

นอกจากนี้ การใช้ซอฟต์แวร์แพคเกจโบราณใน OS รุ่นใหม่นั้นมีค่า maintenance cost ค่อนข้างสูงในการติดตามแก้ไขปัญหาต่าง ๆ โดยเฉพาะการแพทซ์เมื่อเกิดช่องโหว่ด้านความปลอดภัย ดังนั้นการเลือกใช้ซอฟต์แวร์แพคเกจที่ใหม่กว่าและยังมีการ maintenance ที่ active กว่าจะช่วยลดปัญหาเหล่านี้ได้ แต่ก็จะมีข้อแลกเปลี่ยนคือผู้ใช้อาจจะต้องทำความคุ้นเคยใหม่ ดังนั้น Apple จึงเลือก zsh แทน bash เนื่องจาก zsh ใกล้เคียง bash มาก และผู้ใช้คุ้นเคยอยู่แล้ว จึงไม่ต้องทำความคุ้นเคยใหม่ทั้งหมด

ผู้ที่ได้รับผลกระทบจากการเปลี่ยนจาก bash เป็น zsh จริง ๆ ส่วนมากมักจะเป็นผู้เขียน Shell Script สำหรับรันบน Mac ส่วนกลุ่มผู้ใช้ทั่วไปที่ไม่ได้ใช้ Shell ก็แทบจะไม่มีผลอยู่แล้ว หรือถ้าเป็นผู้ใช้ Mac ที่ต้องใช้งาน Shell บ่อย ๆ ส่วนมากจะเริ่มหันเหไปใช้ Shell ตัวอื่นแล้ว อย่างเช่น Friendly Interactive Shell หรือ fish อย่างผมเองก็หันมาใช้ zsh นานแล้วเหมือนกัน เนื่องจาก Shell อื่น ๆ มักจะซัพพอร์ตปลั๊กอินเยอะมาก เท่ากับมีของเล่นเพื่ออำนวยความสะดวกเยอะกว่า bash

ที่มา – The Verge, Scripting OS X

ภาพประกอบจาก Apple Support

The post รู้จัก zsh เมื่อ Apple เปลี่ยนจาก bash มาเป็น zsh ใน macOS Catalina แล้วมันดีกว่ายังไง appeared first on Macthai.com.