Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Mac

กำจัดข้อความ "Default Interactive Shell is now zsh" บน macOS

หากคุณเพิ่งเปลี่ยนจาก zsh เป็น bash หรืออัปเดตเป็น macOS Catalina/Big Sur/Monterey คุณอาจได้รับข้อความที่อ่านว่า "The default interactive shell is now zsh. To update your account to use zsh, please run 'chsh -s /bin/zsh'. For more details, please visit https://support.apple.com/kb/HT208050." ทุกครั้งที่คุณเปิด Terminal

Apple เปลี่ยน default interactive shell จาก bash เป็น zsh ตั้งแต่ macOS Catalina เวอร์ชัน macOS ต่อมาอย่าง macOS Monterey/Big Sur ก็มี default shell ตั้งเป็น zsh หาก default shell ของ Mac ของคุณยังเป็น bash เก่าหรือคุณตั้ง Terminal ให้เปิดด้วย bash หรือ shell อื่นขณะรันระบบปฏิบัติการเหล่านี้ คุณจะเห็นคำเตือน

คุณต้องสับสนหากคุณไม่คุ้นเคยกับ Terminal และ interactive shells แต่องค์ไม่ต้องกังวล เราจะช่วยคุณเข้าใจข้อความ "The default interactive shell is now zsh." ลบมัน และเปลี่ยน default interactive shell บน Mac หากคุณต้องการ

คู่มือสำหรับ "The default interactive shell is now zsh." บน Mac:

  • 1. 'The default interactive shell is now zsh.' หมายความว่าอะไร?
  • 2. วิธีลบ 'The default interactive shell is now zsh.'?
  • 3. bash vs. zsh สำหรับ Mac
  • 4. คำถามที่พบบ่อยเกี่ยวกับ 'The default interactive shell is now zsh.' บน Mac

"The default interactive shell is now zsh." หมายความว่าอะไร?

มี interactive shells หลายตัวที่ตีความและรันคำสั่งที่เราป้อนใน Terminal บน Mac ระหว่างนั้น zsh (Z shell) และ bash (Bourne again shell) ใช้บ่อยที่สุด

บน macOS Mojave และก่อนหน้า bash เป็น default interactive shell แต่ Apple ค้างอยู่ที่ version 3.2 ของ bash (ปล่อยปี 2006) นานมาก เนื่องจาก bash เวอร์ชันใหม่ได้รับอนุญาตภายใต้ GPLv3 ซึ่งจำกัดบริษัทอย่าง Apple ที่เซ็นโค้ดของตัวเอง เดาได้ว่านั่นเป็นส่วนหนึ่งของเหตุผลที่พวกเขาต้องการเปลี่ยน default shell ของ macOS

ตั้งแต่ macOS Catalina zsh แทนที่ bash เป็น default shell บน Mac เพราะมันเข้ากันได้กับ bash มากที่สุดและใกล้เคียงกับฟังก์ชันของ bash Apple ยังฝังคำเตือนใน Terminal เพื่อเตือนผู้ใช้ที่ยังไม่สลับเป็น zsh เกี่ยวกับการปรับเปลี่ยนและส่งเสริมการอัปเดต

หากบัญชีผู้ใช้ของคุณสร้างก่อน macOS Catalina ซึ่งยังมี bash เป็น default shell หรือคุณเรียกใช้ bash shell ในขณะที่ Mac ตั้งค่าใช้ zsh คุณจะเห็นข้อความอ่านว่า "The default interactive shell is now zsh. To update your account to use zsh, please run `chsh -s /bin/zsh`. For more details, please visit https://support.apple.com/kb/HT208050." ใน Terminal

วิธีลบ 'The default interactive shell is now zsh.'?

หากคุณไม่ใช้ Terminal บ่อย คุณสามารถเพิกเฉยข้อความได้ มิฉะนั้น คุณสามารถ ลบ "The default interactive shell is now zsh." บน Monterey/Big Sur/Catalina ด้วยวิธีด้านล่าง

  • Way 1: เปลี่ยน default shell เป็น zsh
  • Way 2: ซ่อน 'The default interactive shell is now zsh.' และใช้ bash ต่อ
  • Way 3: สลับไปใช้ bash ที่มากับ Homebrew

คุณคลิกปุ่มด้านล่างเพื่อแชร์วิธีแก้เหล่านี้ไปแพลตฟอร์มโปรด

 

Way 1: เปลี่ยน default shell เป็น zsh

นอกจากสถานการณ์ที่กล่าวมา คุณยังอาจเจอ "The default interactive shell is now zsh." บน Mac เมื่อรัน Python หรือไฟล์บางไฟล์ภายใต้โฟลเดอร์ใน VSCode หากคุณพร้อมที่จะยอมรับ zsh ในฐานะที่หลายคนทำ คุณสามารถเปลี่ยน default interactive shell บน Mac โดยใช้คำสั่งที่คำเตือน "The default interactive shell is now zsh." แนะนำ

ปฏิบัติตามขั้นตอนด้านล่างเพื่อสลับ shell เป็น zsh โดยใช้ Terminal:

  1. เปิด Terminal หากคุณยังไม่ได้เปิด
  2. ป้อนคำสั่งต่อไปนี้และกด Enter chsh -s /bin/zsh
  3. พิมพ์รหัสผ่านและกด Enter อีกครั้ง
  4. รีสตาร์ท Mac เพื่อให้การเปลี่ยนแปลงมีผล

ทางเลือก คุณสามารถเปลี่ยน bash เป็น zsh จากหน้าต่างตั้งค่า Users & Groups

วิธีสลับจาก zsh เป็น bash จาก System Preferences:

  1. คลิกเมนู Apple > System Preferences > Users & Groups
  2. แตะแพดล็อกมุมซ้ายล่าง ใส่รหัสผ่าน และคลิก Unlock
  3. คลิกขวาบนบัญชีของคุณ และเลือก "Advanced Options."กำจัดข้อความ  Default Interactive Shell is now zsh  บน macOS
  4. เลือก /bin/zsh จากเมนูดรอปดาวน์ถัดจาก "Login shell."กำจัดข้อความ  Default Interactive Shell is now zsh  บน macOS
  5. คลิก OK
  6. รีบูท Mac

ตอนนี้คุณเปลี่ยน default interactive shell บน Mac เป็น zsh สำเร็จแล้ว คุณจะไม่ได้รับข้อความที่ว่ "The default interactive shell is now zsh." อีกต่อไป

Way 2: ซ่อน 'The default interactive shell is now zsh.' และใช้ bash ต่อ

หากคุณรู้ประโยชน์ของ zsh เช่น การปรับแต่งมากขึ้นและ auto-completion ที่ฉลาดกว่า แต่ยังชอบ bash ที่คุ้นเคย คุณสามารถซ่อน 'The default interactive shell is now zsh.' โดยเพิ่มบรรทัดโค้ด (export BASH_SILENCE_DEPRECATION_WARNING=1) ลงในไฟล์ใดไฟล์หนึ่งต่อไปนี้: ~/.bash_profile, ~/.profile หรือ ~/.bashrc

วิธีกำจัดการแจ้งเตือนเมื่อ Mac terminal โชว์ 'The default interactive shell is now zsh.':

  1. เปิด Terminal
  2. ป้อนคำสั่งด้านล่างและกด Enter เพื่อเพิ่มบรรทัดไปที่ ~/.bash_profile touch ~/.bash_profile && echo "export BASH_SILENCE_DEPRECATION_WARNING=1" >> ~/.bash_profile

หากการแก้ไข ~/.bash_profile ไม่ได้ผล ให้แทนที่ ~/.bash_profile ในโค้ดด้วย ~/.profile หรือ ~/.bashrc และรันคำสั่งใหม่ แปลกใจที่บางผู้ใช้ที่ใช้ zsh อยู่แล้วยังได้คำเตือนเมื่อเปิดคอนโซลใหม่ ในกรณีนี้ การเป็น root และเพิ่มบรรทัดไปที่ /etc/profile น่าเชื่อถือกว่า

ลบ "The default interactive shell is now zsh." บน Monterey/Big Sur/Catalina:

  1. เปิด Terminal
  2. พิมพ์คำสั่งต่อไปนี้และกด Enter เพื่อแก้ไข /etc/profile เป็น root sudo nano /etc/profile
  3. ใส่รหัสผ่านและกด Enter
  4. แตะลูกศรลงเพื่อเลื่อนเคอร์เซอร์ไปบรรทัดใต้ "# System-wide .profile for sh(1)"
  5. คัดลอกและวางข้อความด้านล่างไปที่บรรทัด export BASH_SILENCE_DEPRECATION_WARNING=1กำจัดข้อความ  Default Interactive Shell is now zsh  บน macOS
  6. กด Control + X แล้วพิมพ์ "y" เพื่อยืนยันการเปลี่ยนแปลง
  7. กด Enter เพื่อออกจาก nano
  8. ปิด Terminal
  9. รีสตาร์ท Mac

Way 3: สลับไปใช้ bash ที่มากับ Homebrew

หากคุณต้องการใช้ bash ใหม่กว่าและกำจัด 'The default interactive shell is now zsh.' บน Monterey/Big Sur/Catalina คุณสามารถสลับไปใช้ bash ที่มากับ Homebrew ซึ่งไม่มีโค้ดที่รวมอยู่ใน bash ของ Apple เพื่อแสดงคำเตือน หลังจาก ติดตั้ง Homebrew บน Mac คุณสามารถใช้ bash ใน Homebrew แล้วอัปเดตเป็น bash ล่าสุด (ปัจจุบัน 5.1.16)

วิธีลบ "The default interactive shell is now zsh." บน Catalina/Big Sur/Monterey โดยการอัปเดต bash:

  1. เปิด Terminal
  2. พิมพ์คำสั่งด้านล่างและกด Enter เพื่อติดตั้ง Xcode xcode-select --install
  3. คลิก Install เพื่อยืนยันการติดตั้ง
  4. รอให้เสร็จ
  5. ป้อนคำสั่งต่อไปนี้ใน Terminal และกด Enter เพื่อติดตั้ง Homebrew /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  6. อาจใช้เวลาสักครู่สำหรับ Homebrew ในการติดตั้งและอัปเดต
  7. หากคุณได้รับคำเตือนว่า /opt/homebrew/bin ไม่อยู่ใน PATH คุณ คัดลอกและวางคำสั่งที่ Homebrew แนะนำและกด Enter เพื่อเพิ่ม Homebrew ลงใน PATH
  8. รันคำสั่งด้านล่างเพื่ออัปเดต bash: brew update && brew install bash && sudo chsh -s /usr/local/bin/bash $(whoami)

คุณเลือกวิธีแก้ไหน? คลิกปุ่มด้านล่างเพื่อแชร์โพสต์นี้กับเพื่อน!

 

bash vs. zsh สำหรับ Mac

เหมือนกับ bash zsh ก็มาจากครอบครัว "Bourne" ของ shells ดังนั้นพวกมันดูคล้ายกันตอนแรก แต zsh ปรับแต่งและขยายได้มากกว่า bash เนื่องจากคุณสามารถเพิ่มฟังก์ชันใหม่ได้ง่าย และมีตัวเลือกปลั๊กอินมากกว่า

Zsh ออกแบบมาเพื่อปรับปรุงการโต้ตอบผู้ใช้ ดังนั้นมันมีฟีเจอร์มากมายที่ไม่มีอยู่บน bash หรือทำงานได้ไม่มีประสิทธิภาพเท่าบน bash เช่น autocompletion, syntax highlighting, autocorrection, floating-point arithmetic และอีกมากมาย อย่างไรก็ตาม bash มีข้อได้เปรียบคือเป็น default shell ของ Linux machines และ servers ส่วนใหญ่ ทำให้มันยังใช้กันอย่างกว้างขวางโดยโปรแกรมเมอร์

หากคุณเป็นผู้ใช้ Mac ทั่วไปที่ใช้ Terminal บ้างครั้ง คุณสามารถเพิกเฉยข้อความหรือเปลี่ยน shell เป็น zsh ตามที่ Apple แนะนำ หากคุณทำงานกับแพลตฟอร์มต่างๆ ที่ bash เป็น shell ทั่วไป คุณควรพิจารณาได้ bash ที่อัปเดตแล้วกับ Homebrew หากคุณอยู่ระหว่างกลาง คุณสามารถซ่อนคำเตือนและใช้ bash ที่คุ้นเคยต่อไป

คำถามที่พบบ่อยเกี่ยวกับ 'The default interactive shell is now zsh.' บน Mac

QDefault interactive shell บน Mac คืออะไร? A

Apple สลับ macOS default shell จาก bash เป็น zsh ตั้งแต่ macOS Catalina

Qทำไม macOS ถึงสลับเป็น zsh? A

Apple ตัดสินใจเปลี่ยน default shell บน Mac เพราะ bash ของ Mac ค้างที่ version 3.2 มาหลายปี ในขณะที่ bash เวอร์ชันล่าสุดคือ 5.1 และพวกเขาไม่วางแผนอัปเดต เพราะ bash ใหม่ได้รับอนุญาตภายใต้ GPLv3 ที่ไม่เป็นมิตรกับธุรกิจ Zsh มีฟังก์ชันคล้าย bash แต่โต้ตอบและปรับแต่งได้มากกว่า จึงเลือกเปลี่ยน default shell เป็น zsh

Qจะเปลี่ยน default interactive shell บน Mac ยังไง? A

คุณสามารถเปลี่ยน default interactive shell บน Mac ได้ทั้ง Terminal และหน้าต่างตั้งค่า Users & Groups ตัวอย่างเช่น หากคุณต้องการเปลี่ยน zsh เป็น bash บน Mac รันคำสั่งนี้: chsh -s /bin/bash ใน Terminal จะทำได้ หรือเปิด System Preferences > Users & Groups > คลิกขวาบนชื่อบัญชี > เลือก Advanced Options > เลือก bin/bash สำหรับ Login Shell

Qจะทำให้ zsh เป็น default shell บน Mac ยังไง? A

วิธีเร็วที่สุดคือรันคำสั่ง: chsh -s /bin/zsh ใน Terminal