คำตอบที่ถูกต้องควรช่วยแก้ปัญหาของคุณ:
chsh: / usr / bin / zsh: เชลล์ที่ไม่ได้มาตรฐาน
สาเหตุที่เป็นเช่นนี้เนื่องจากchsh
จะยอมรับเฉพาะเชลล์ที่กำหนดไว้ในไฟล์ / etc / เชลล์ดังที่คุณเห็นโดยการอ่านคู่มือสำหรับchsh
:
chsh จะยอมรับชื่อพา ธ แบบเต็มของไฟล์ปฏิบัติการใด ๆ บนระบบ อย่างไรก็ตามมันจะออกคำเตือนหากเชลล์ไม่อยู่ในรายการ / etc / เชลล์ไฟล์
ในการแก้ปัญหานี้และทำให้ zsh เป็นเชลล์เริ่มต้นคุณควร:
$ sudo echo "$(which zsh)" >> /etc/shells
$ chsh -s $(which zsh)
แน่นอนฉันคิดว่านั่นzsh
อยู่ในเส้นทางของคุณที่นี่ การแก้ปัญหานี้ยังจะทำงานถ้าคุณยกตัวอย่างเช่นเลือกที่จะติดตั้งล่าสุดกับzsh
brew install zsh
แก้ไข (ขอบคุณสำหรับ ThisIsFlorianK สำหรับความคิดเห็น) :
/etc/shells: Permission denied
ทั้งนี้ขึ้นอยู่กับการตั้งค่าเปลือกของคุณคุณอาจได้รับข้อความว่า คุณสามารถค้นหาข้อมูลเกี่ยวกับปัญหานี้ได้ที่นี่
ในการแก้ไขปัญหาให้ใช้สิ่งต่อไปนี้แทน:
$ sudo sh -c "echo $(which zsh) >> /etc/shells"
$ chsh -s $(which zsh)
chsh -l
เอาท์พุท? (ถ้าไม่ได้ผลจะมีเนื้อหา/etc/shells
อะไรบ้าง) แน่ใจหรือว่าล้มเหลวไม่ใช่แค่เตือน? การเพิ่มที่/usr/bin/zsh
นั่นทำให้ใช้งานได้หรือไม่?