🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

วิธีใช้ Bash บน macOS: จะเปลี่ยนจาก Zsh ได้อย่างไร?

ในบทความที่ผ่านมา เราได้เรียนรู้ตั้งแต่พื้นฐานของ Bash ไปจนถึงการติดตั้งบน Windows ด้วย WSL ครั้งนี้ เราจะมาเจาะลึกความรู้สำหรับผู้ใช้ macOS เพื่อทำให้สภาพแวดล้อมการทำงานบนเทอร์มินัลของคุณสะดวกสบายยิ่งขึ้น หากคุณเป็นนักสร้างสรรค์เว็บที่ใช้ macOS เป็นประจำ อาจจะเคยเปิด Terminal ขึ้นมาแล้วเจอตัวอักษรที่ไม่คุ้นเคยอย่าง "zsh" แล้วสงสัยว่า "เอ๊ะ นี่ไม่ใช่ Bash เหรอ?"

ใช่แล้วครับ ตั้งแต่ macOS Catalina (เปิดตัวปี 2019) เป็นต้นมา เชลล์มาตรฐานของ Mac ได้ถูกเปลี่ยนจาก Bash มาเป็น Zsh (Z Shell) แม้ว่า Zsh จะเป็นเชลล์ที่ยอดเยี่ยมและมีฟังก์ชันการทำงานสูง แต่บทเรียนและเซิร์ฟเวอร์ส่วนใหญ่ในโลกยังคงใช้ Bash เป็นมาตรฐาน ด้วยเหตุนี้ จึงมีผู้ใช้จำนวนไม่น้อยที่ต้องการ "เตรียมสภาพแวดล้อม Bash เพื่อการเรียนรู้" หรือ "ต้องการทำงานด้วยเชลล์ที่เหมือนกับเซิร์ฟเวอร์ทุกประการ"

ในบทความนี้ เราจะอธิบายประเด็นต่อไปนี้ให้ผู้ใช้ macOS ทุกท่านเข้าใจได้ง่ายๆ:

เมื่ออ่านบทความนี้จบ คุณจะมีความรู้ในการปรับแต่งสภาพแวดล้อมเทอร์มินัลบน macOS ของคุณได้อย่างอิสระ และสามารถเลือกใช้เชลล์ที่เหมาะสมที่สุดกับแต่ละโปรเจกต์ได้!


Zsh กับ Bash ต่างกันอย่างไร?

ก่อนอื่น ทั้ง Zsh และ Bash เป็น "เชลล์" ประเภทหนึ่งเหมือนกัน ซึ่งเป็นโปรแกรมโต้ตอบที่เราใช้ส่งคำสั่งไปยังระบบปฏิบัติการ คำสั่งพื้นฐานส่วนใหญ่ (เช่น ls, cd, mkdir) สามารถใช้งานได้เหมือนกันในทั้งสองเชลล์

แล้วทำไม Apple ถึงเปลี่ยนจาก Bash ที่เป็นมาตรฐานมานานหลายปีมาเป็น Zsh? เรามาดูความแตกต่างและเหตุผลหลักๆ กัน

สรุปได้ว่า Zsh เปรียบเสมือนเวอร์ชันอัปเกรดของ Bash แต่ก็ไม่ได้เข้ากันได้ 100% ความต้องการที่จะใช้ Bash เพื่อให้ตรงกับสภาพแวดล้อมของเซิร์ฟเวอร์หรือสคริปต์ที่มีอยู่เดิมจึงยังคงมีอยู่มาก


ขั้นตอนที่ 1: ติดตั้ง Bash เวอร์ชันล่าสุด

Bash ที่มาพร้อมกับ macOS นั้นเป็นเวอร์ชันที่เก่ามากตามที่กล่าวไป ก่อนอื่น เรามาติดตั้ง Bash เวอร์ชันล่าสุดโดยใช้ Homebrew กัน Homebrew เป็นเครื่องมือจัดการแพ็กเกจที่สะดวกสำหรับ macOS

เปิด Terminal แล้วรันคำสั่งต่อไปนี้เพื่อติดตั้ง Bash (หากยังไม่ได้ติดตั้ง Homebrew กรุณาติดตั้งก่อน)

brew install bash

คำสั่งนี้จะทำการติดตั้ง Bash เวอร์ชันใหม่ที่จัดการโดย Homebrew แยกต่างหากจาก /bin/bash ที่เป็นมาตรฐานของ macOS (โดยปกติจะถูกติดตั้งไว้ที่ /usr/local/bin/bash หรือ /opt/homebrew/bin/bash)


การตรวจสอบเวอร์ชัน

หลังจากติดตั้งเสร็จ เรามาเปรียบเทียบเวอร์ชันของ Bash ตัวเก่าและตัวใหม่กันดู ก่อนอื่น ตรวจสอบเวอร์ชันของ Bash ตัวเก่าที่มากับ macOS

$ /bin/bash --version
GNU bash, version 3.2.57(1)-release ...

ต่อไป ตรวจสอบเวอร์ชันของ Bash ตัวใหม่ที่ติดตั้งผ่าน Homebrew (กรุณาปรับพาธให้ตรงกับสภาพแวดล้อมของคุณ)

$ /opt/homebrew/bin/bash --version
GNU bash, version 5.2.15(1)-release ...

จะเห็นได้ว่า Bash เวอร์ชัน 5 ได้ถูกติดตั้งเรียบร้อยแล้ว!


ขั้นตอนที่ 2: เปลี่ยน Shell เริ่มต้นเป็น Bash

แค่ติดตั้ง Bash เวอร์ชันใหม่ยังไม่พอ เพราะเมื่อเปิด Terminal ขึ้นมาใหม่ เชลล์ที่ใช้งานก็ยังคงเป็น Zsh อยู่ดี เรามาดูขั้นตอนการเปลี่ยนไปใช้ Bash ตัวใหม่ที่เราเพิ่งติดตั้งกัน

2-1. เพิ่ม Bash ตัวใหม่เข้าไปในรายการเชลล์ที่อนุญาต

เพื่อความปลอดภัย macOS จะมีรายการโปรแกรมที่ผู้ใช้สามารถตั้งเป็นเชลล์เริ่มต้นได้อยู่ในไฟล์ /etc/shells ก่อนอื่นเราต้องเพิ่มพาธของ Bash ที่ติดตั้งผ่าน Homebrew เข้าไปในไฟล์นี้ก่อน

รันคำสั่งต่อไปนี้ หากระบบถามรหัสผ่าน ให้ป้อนรหัสผ่านสำหรับล็อกอินเข้า Mac ของคุณ

sudo sh -c 'echo /opt/homebrew/bin/bash >> /etc/shells'

2-2. ใช้คำสั่ง chsh เพื่อเปลี่ยนเชลล์เริ่มต้น

เมื่อเพิ่มเข้าไปในรายการที่อนุญาตแล้ว ให้ใช้คำสั่ง chsh (change shell) เพื่อเปลี่ยน login shell ของคุณเป็น Bash ตัวใหม่

chsh -s /opt/homebrew/bin/bash

หลังจากรันคำสั่งนี้แล้ว ให้ปิด Terminal ให้สนิทแล้วเปิดขึ้นมาใหม่ เพียงเท่านี้ ครั้งต่อไปที่เปิด Terminal ก็จะเริ่มต้นด้วย Bash แล้ว


ขั้นตอนที่ 3: การยืนยันและวิธีกลับไปเป็นเหมือนเดิม

เมื่อเปิดหน้าต่าง Terminal ใหม่แล้ว มาลองตรวจสอบกันว่าเชลล์ได้เปลี่ยนเป็น Bash จริงหรือไม่ รันคำสั่งต่อไปนี้

$ echo $SHELL
/opt/homebrew/bin/bash

หากแสดงผลเป็นพาธของ Bash ที่ติดตั้งด้วย Homebrew แสดงว่าการสลับสำเร็จแล้ว!


เมื่อต้องการกลับไปใช้ Zsh

หากคุณคิดถึงฟังก์ชันของ Zsh หรือต้องการกลับไปใช้เหมือนเดิม ก็ทำได้ง่ายๆ เพียงแค่ใช้คำสั่ง chsh แล้วระบุพาธของ Zsh เท่านั้นเอง

chsh -s /bin/zsh

หลังจากนั้น เมื่อเปิด Terminal ใหม่ คุณก็จะกลับไปเจอกับพรอมต์ของ Zsh ที่คุ้นเคย


สรุป

เยี่ยมมากครับ! ครั้งนี้เราได้อธิบายวิธีการสลับเชลล์เริ่มต้นจาก Zsh ไปเป็น Bash เวอร์ชันล่าสุดสำหรับผู้ใช้ macOS ด้วยวิธีนี้ Mac ของคุณจะมีสภาพแวดล้อม Bash ที่ใกล้เคียงกับที่ใช้กันอย่างแพร่หลายในงานพัฒนาเว็บ ทำให้การเรียนรู้และการทำงานของคุณราบรื่นยิ่งขึ้น

Zsh และ Bash ต่างก็เป็นเครื่องมือที่ยอดเยี่ยมและมีข้อดีข้อเสียแตกต่างกันไป ไม่มีอันไหนที่ถูกต้องที่สุดเสมอไป สิ่งสำคัญคือการเข้าใจคุณสมบัติของแต่ละตัว และมีความรู้ในการสลับสภาพแวดล้อมได้ทุกเมื่อเพื่อให้เข้ากับความต้องการของโปรเจกต์หรือความชอบส่วนตัวของคุณ ซึ่งในวันนี้ คุณได้รับพลังนั้นมาแล้ว!

เอาล่ะ เมื่อสภาพแวดล้อม Bash พร้อมแล้ว ต่อไปเราจะมาเรียนรู้คำสั่งพื้นฐานของ Bash กันทีละตัวอย่างละเอียด ในบทความหน้า เราจะอธิบายคำสั่งพื้นฐานในการจัดการไฟล์อย่าง `cd` และ `ls` ซึ่งเป็นส่วนสำคัญในการสร้างความแข็งแกร่งพื้นฐานสำหรับการใช้ Bash อย่าลืมติดตามกันนะครับ

รายการคำสั่งพื้นฐานของ Bash และวิธีใช้งานเบื้องต้น (cd, ls, echo และอื่นๆ)