คำตอบที่ถูกต้องควรช่วยแก้ปัญหาของคุณ:
chsh: / usr / bin / zsh: เชลล์ที่ไม่ได้มาตรฐาน
สาเหตุที่เป็นเช่นนี้เนื่องจากchshจะยอมรับเฉพาะเชลล์ที่กำหนดไว้ในไฟล์ / etc / เชลล์ดังที่คุณเห็นโดยการอ่านคู่มือสำหรับchsh:
chsh จะยอมรับชื่อพา ธ แบบเต็มของไฟล์ปฏิบัติการใด ๆ บนระบบ อย่างไรก็ตามมันจะออกคำเตือนหากเชลล์ไม่อยู่ในรายการ / etc / เชลล์ไฟล์
ในการแก้ปัญหานี้และทำให้ zsh เป็นเชลล์เริ่มต้นคุณควร:
$ sudo echo "$(which zsh)" >> /etc/shells
$ chsh -s $(which zsh)
แน่นอนฉันคิดว่านั่นzshอยู่ในเส้นทางของคุณที่นี่ การแก้ปัญหานี้ยังจะทำงานถ้าคุณยกตัวอย่างเช่นเลือกที่จะติดตั้งล่าสุดกับzshbrew 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นั่นทำให้ใช้งานได้หรือไม่?