ดังนั้นฉันจึงเรียนรู้ที่จะพัฒนาใน Rails และได้ค้นพบพลังของ zsh อย่างไรก็ตามสำหรับงานอื่นของฉันฉันต้องการใช้ Bash ปกติ แม้ว่าพวกเขาจะเหมือนกัน แต่ฉันก็รู้สึกสบายใจกับการถูกไล่ออกจากงานในบางสถานการณ์ ฉันจะสลับไปมาหรือเปิดและปิด zsh ได้อย่างไร ขอบคุณ!
ดังนั้นฉันจึงเรียนรู้ที่จะพัฒนาใน Rails และได้ค้นพบพลังของ zsh อย่างไรก็ตามสำหรับงานอื่นของฉันฉันต้องการใช้ Bash ปกติ แม้ว่าพวกเขาจะเหมือนกัน แต่ฉันก็รู้สึกสบายใจกับการถูกไล่ออกจากงานในบางสถานการณ์ ฉันจะสลับไปมาหรือเปิดและปิด zsh ได้อย่างไร ขอบคุณ!
คำตอบ:
คุณสามารถใช้exec
เพื่อแทนที่เชลล์ปัจจุบันด้วยเชลล์ใหม่:
เปลี่ยนเป็นbash
:
exec bash
เปลี่ยนเป็นzsh
:
exec zsh
สิ่งนี้จะไม่ส่งผลกระทบต่อหน้าต่างเทอร์มินัลใหม่หรือสิ่งใด ๆ แต่ก็สะดวก
exit
เพื่อกลับไปทุบตี ดูเหมือนว่าไม่จำเป็นและไม่พึงประสงค์
คุณสามารถลองchsh -s /bin/bash
ตั้งค่า bash เป็นค่าเริ่มต้นหรือchsh -s /bin/zsh
ตั้งค่า zsh เป็นค่าเริ่มต้น
ฉันสลับระหว่าง zsh และ bash ค่อนข้างบ่อย ในขณะที่ฉันเคยต้อง bash_profile ทุกสวิตช์ของฉัน จากนั้นฉันก็พบว่าคุณสามารถทำได้
exec bash --login
หรือเพียงแค่
exec bash -l
หากเป็นเพียงสวิตช์ชั่วคราว
คุณสามารถใช้ exec ดังกล่าวข้างต้น แต่สำหรับวิธีการแก้ปัญหาถาวร
คุณสามารถใช้chsh -s / bin / bash (เพื่อเปลี่ยนเป็น bash) และchsh -s / bin / zsh (เพื่อเปลี่ยนเป็น zsh)
สำหรับ Bash ให้ลอง
chsh -s $(which bash)
สำหรับ zsh ลอง
chsh -s $(which zsh)
zsh มีคำสั่ง builtin emulate
ซึ่งสามารถเลียนแบบเชลล์ที่แตกต่างกันโดยการตั้งค่าตัวเลือกที่เหมาะสมแม้ว่า csh จะไม่ถูกจำลองทั้งหมด
emulate bash
perform commands
emulate -R zsh
แฟล็ก -R จะเรียกคืนตัวเลือกทั้งหมดเป็นค่าเริ่มต้นสำหรับเชลล์นั้น
ดู: คู่มือ zsh
คุณควรจะสามารถพิมพ์bash
ลงในเทอร์มินัลเพื่อเปลี่ยนเป็นทุบตีแล้วพิมพ์zsh
เพื่อสลับไปที่ zsh ทำงานได้ดีสำหรับฉันอย่างน้อย
zsh
หรือbash
คุณกำลังเข้าสู่ sub-shell (subprocess ภายใต้ shell ปัจจุบัน) คุณจะต้องพิมพ์ exit หลาย ๆ ครั้งเพื่อกลับไปที่เชลล์อันดับสูงสุด
ในเชลล์แบบโต้ตอบดีฟอลต์ของ Mac OS Catalina คือ zsh ในการเปลี่ยนเชลล์เป็น zsh จาก bash:
chsh -s /bin/zsh
จากนั้นคุณต้องป้อนรหัสผ่าน Mac ของคุณ ออกจากเทอร์มินัลแล้วเปิดใหม่ ในการตรวจสอบว่ามันเปลี่ยนเป็น ssh สำเร็จแล้วให้ออกคำสั่งต่อไปนี้
echo $SHELL
หากผลลัพธ์คือ / bin / zsh งานของคุณจะเสร็จสมบูรณ์
หากต้องการเปลี่ยนกลับเป็น bash ให้ใช้คำสั่งต่อไปนี้บนเทอร์มินัล
chsh -s /bin/bash
echo $SHELL
ตรวจสอบอีกครั้งโดยใช้ ผลลัพธ์ควรเป็น / bin / bash
คุณสามารถพิมพ์bash
หรือถ้าคุณต้องการใช้ bash:
ใน "iTerm2"
bash
ทดสอบโดยปิด iTerm แล้วเปิดใหม่อีกครั้ง
คุณสามารถเปลี่ยนกลับเป็น bash ได้อย่างง่ายดายโดยใช้คำสั่ง "bye"