ใช้ zsh เป็นเชลล์ค่าเริ่มต้นบน Mac
เริ่มจาก macOS Catalina เป็นต้นไป Mac ของคุณจะใช้ zsh เป็นเชลล์เข้าสู่ระบบเริ่มต้นและเชลล์แบบโต้ตอบ คุณสามารถทำ zsh ให้เป็นค่าเริ่มต้นในเวอร์ชั่นก่อนหน้าของ macOS ได้เช่นกัน
ตามค่าเริ่มต้น Mac ของคุณใช้ zsh หรือ Bash เป็นตัวตีความบรรทัดคำสั่งสำหรับเชลล์เข้าสู่ระบบและเชลล์แบบโต้ตอบดังต่อไปนี้
zsh (Z shell) เป็นเชลล์เริ่มต้นสำหรับบัญชีผู้ใช้ที่สร้างขึ้นใหม่ทั้งหมด โดยเริ่มจาก macOS Catalina
bash เป็นเชลล์ค่าเริ่มต้นใน macOS Mojave และรุ่นก่อนหน้า
zsh เข้ากันได้อย่างมากกับเชลล์ Bourne (sh) และส่วนใหญ่เข้ากันได้กับ Bash โดยมีความแตกต่างบางอย่างอยู่ หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับ zsh และระบบเสร็จสิ้นบรรทัดคำสั่งที่ครอบคลุม ให้ป้อน man zsh
ในเทอร์มินัล
วิธีเปลี่ยนเชลล์ค่าเริ่มต้น
ไม่ว่าบัญชีผู้ใช้ของคุณจะถูกกำหนดค่าให้ใช้ zsh (แนะนำ), bash หรือเชลล์อื่น คุณสามารถเปลี่ยนเชลล์เริ่มต้นได้จากบรรทัดคำสั่งหรือการตั้งค่าผู้ใช้และกลุ่ม
จากบรรทัดคำสั่ง
ในเทอร์มินัล ให้ป้อน $ chsh -s path
โดยที่ path คือหนึ่งในเส้นทางของเชลล์ตามที่ระบุไว้ใน /etc/shells เช่น /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh, or /bin/tcsh
จากการตั้งค่าผู้ใช้และกลุ่ม
ใน macOS Ventura หรือใหม่กว่า:
เลือกเมนู Apple > การตั้งค่าระบบ จากนั้นคลิกผู้ใช้และกลุ่มในแถบด้านข้าง
กดปุ่ม Control ค้างไว้ แล้วคลิกชื่อผู้ใช้หรือรูปภาพผู้ใช้ของคุณในรายการผู้ใช้ทางด้านขวา จากนั้นเลือกตัวเลือกขั้นสูง
ป้อนชื่อผู้ใช้และรหัสผ่านของคุณเมื่อได้รับแจ้ง
เลือกเชลล์จากเมนู "เชลล์เข้าสู่ระบบ" แล้วคลิกตกลงเพื่อบันทึกการเปลี่ยนแปลง
ใน macOS เวอร์ชั่นก่อนหน้า:
เลือกเมนู Apple > การตั้งค่าระบบ แล้วคลิกผู้ใช้และกลุ่ม
คลิก
แล้วป้อนชื่อผู้ใช้และรหัสผ่านของคุณกด Control ค้างไว้ แล้วคลิกชื่อผู้ใช้ของคุณในรายการชื่อผู้ใช้ทางด้านซ้าย จากนั้นเลือกตัวเลือกขั้นสูง
เลือกเชลล์จากเมนู "เชลล์เข้าสู่ระบบ" แล้วคลิกตกลงเพื่อบันทึกการเปลี่ยนแปลง
วิธีการใช้เชลล์ที่ต่างกันโดยไม่เปลี่ยนค่าเริ่มต้น
หากคุณไม่ต้องการให้เทอร์มินัลใช้เชลล์เข้าสู่ระบบค่าเริ่มต้นในหน้าต่างและแท็บเทอร์มินัล ให้ทำดังต่อไปนี้
เปิดเทอร์มินัล แล้วเลือกเทอร์มินัล > การตั้งค่า (หรือค่ากำหนด)
จากบานหน้าต่างทั่วไป ให้เลือก "คำสั่ง (เส้นทางสมบูรณ์)"
ในช่องที่อยู่ติดกัน ให้ป้อนเส้นทางใดเส้นทางหนึ่งของเชลล์ที่แสดงไว้ใน /etc/shells เช่น /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh หรือ /bin/tcsh
หากคุณเรียกใช้เชลล์ Bash ในขณะที่ macOS ได้รับการกำหนดค่าให้ใช้เชลล์อื่น คุณจะเห็นข้อความว่าเชลล์แบบโต้ตอบเริ่มต้นคือ zsh ในการปิดคำเตือนนี้ คุณสามารถเพิ่มคำสั่งนี้ใน ~/.bash_profile หรือ ~/.profile ได้ดังต่อไปนี้
export BASH_SILENCE_DEPRECATION_WARNING=1
วิธีการสลับเป็นโปรไฟล์และพร้อมท์ zsh
หากคุณต้องการใช้โปรไฟล์ Bash เช่น ตัวแปรสภาพแวดล้อม นามแฝง หรือตัวแปรเส้นทาง คุณควรสลับไปใช้โปรไฟล์ที่เทียบเท่า zsh ตัวอย่างเช่น
.zprofile เทียบเท่ากับ .bash_profile
.zshrc เทียบเท่ากับ .bashrc
หากคุณกำลังใช้ .profile (โปรไฟล์ที่สอดคล้องกับ POSIX) คุณสามารถทำให้ zsh อ่านการตั้งค่าโดยอัตโนมัติโดยเพิ่มคำสั่งนี้ไปที่ .zprofile
[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'
คุณสามารถย้ายการตั้งค่าจากโปรไฟล์ Bash ไปยังโปรไฟล์ zsh โดยไม่ผ่านการดัดแปลงได้ ตัวอย่างเช่น หากต้องการตั้งค่าตัวแปรสภาพแวดล้อม ให้ใช้คำสั่งต่อไปนี้: export MY_SETTING=1
zsh จะจดจำชุดตัวระบุพร้อมท์ที่แตกต่างจาก Bash และมีไวยากรณ์ที่สะอาดขึ้นสำหรับการระบุเอาต์พุตที่มีสี ทำให้ไม่จำเป็นต้องใช้ลำดับ ANSI escape ที่ซับซ้อนได้ ตัวอย่างเช่น นี่คือไวยากรณ์สำหรับพร้อมท์ Bash ค่าเริ่มต้นจาก .bash_profile:
export PS1="\[\e[92;40m\]\h\[\e[m\]:\[\e[93m\]\W\[\e[m\] \\$ "
หากต้องการแปลงพร้อมท์ Bash นั้นเป็นพร้อมท์ zsh เมื่อใช้ .zprofile หรือ .zshrc
export PS1="%10F%m%f:%11F%1~%f \$ "
โปรดดูหน้า zsh man เพื่อดูข้อมูลเพิ่มเติม
วิธีการทดสอบสคริปต์เชลล์ของคุณ
ในการทดสอบความเข้ากันได้ของสคริปต์กับเชลล์ที่เข้ากันได้กับ Bourne ใน macOS Catalina หรือใหม่กว่า คุณสามารถเปลี่ยน /var/select/sh เป็น /bin/bash, /bin/dash หรือ /bin/zsh หากคุณเปลี่ยน /var/select/sh เป็นเชลล์อื่นที่ไม่ใช่ Bash โปรดทราบว่าสคริปต์ที่ใช้ประโยชน์จาก Bashisms อาจทำงานไม่ถูกต้อง
zsh สามารถทำเพื่อเลียนแบบ sh โดยเรียกใช้คำสั่ง zsh--emulate sh
การให้ข้อมูลเกี่ยวกับผลิตภัณฑ์ที่ไม่ได้ผลิตโดย Apple หรือเว็บไซต์อิสระที่ Apple ไม่ได้ควบคุมหรือทดสอบไม่ถือเป็นการแนะนำหรือการรับรองใดๆ Apple จะไม่รับผิดชอบในส่วนที่เกี่ยวข้องกับการเลือก ประสิทธิภาพการทำงาน หรือการใช้งานเว็บไซต์หรือผลิตภัณฑ์ของบริษัทอื่น Apple ไม่รับรองความถูกต้องหรือความน่าเชื่อถือของเว็บไซต์ของบริษัทอื่น โปรดติดต่อผู้จำหน่ายหากต้องการข้อมูลเพิ่มเติม