วิธีเปลี่ยนเชลล์เริ่มต้นเป็น ZSH - chsh บอกว่า“ เชลล์ไม่ถูกต้อง”


36

ฉันติดตั้ง ZSH บน VM ของฉันซึ่งฉันรวบรวมจากแหล่งที่มา สถานที่ตั้งของ ZSH คือ/usr/local/bin/zshเมื่อฉันเรียกมันเอาท์พุทchsh -s /usr/local/bin/zsh chsh: /usr/local/bin/zsh is an invalid shellฉันยังลองกับ sudo เช่นกัน ฉันจะเปลี่ยนสิ่งนี้ได้อย่างไร


มีความเป็นไปได้ที่ซ้ำกันของฉันจะเปลี่ยนเชลล์ได้ที่ไหน
Mikel

6
@ Mikel ไม่ใช่คำถามนั้นคือ "ฉันไม่รู้chsh" แทนที่จะchshเป็น" ไม่ทำงานสำหรับฉัน"
cjm

คำตอบ:




3

ขั้นแรกตรวจสอบว่าzshมีรายชื่อเป็นเชลล์ที่ถูกต้องหรือไม่

cat /etc/shells

หากzshไม่มีอยู่ในรายการให้ติดตั้ง ตัวอย่างเช่นถ้าคุณใช้apt

sudo apt-get install zsh

ทำขั้นตอนที่ 1 zshอีกครั้งและดูเส้นทางของ ในกรณีของฉันทั้งสอง/usr/bin/zshและ/usr/zshอยู่ในรายการ ในฐานะที่เป็น @ Stéphane Chazelas /etc/shellsกล่าวถึงในความคิดเห็นถ้าคุณต้องการที่จะรวบรวมและติดตั้งเปลือกจากรอยขีดข่วนให้แน่ใจว่าจะเพิ่มเส้นทางใน

เปลี่ยนเชลล์โดยใช้

chsh -s /usr/bin/zsh

จากหน้าคน :

-s, --shell SHELLชื่อของเปลือกเข้าสู่ระบบใหม่ของผู้ใช้ การตั้งค่าฟิลด์นี้เป็นค่าว่างจะทำให้ระบบเลือกเชลล์ล็อกอินเริ่มต้น

ออกจากระบบและเข้าสู่ระบบอีกครั้ง


/etc/shellsใช่ถ้าคุณติดตั้งเปลือกเป็นส่วนหนึ่งของแพคเกจระบบปฏิบัติการบรรจุภัณฑ์ระบบปฏิบัติการโดยทั่วไปจะเพิ่มเปลือกไป จุดนี่คือถ้าคุณรวบรวมและติดตั้งเชลล์ด้วยมือคุณต้องเพิ่มเส้นทาง/etc/shellsด้วยตัวเอง
Stéphane Chazelas

จุดดี. ฉันกำลังคิดถึงผู้จัดการแพ็คเกจเช่น 'apt' ฉันได้แก้ไขคำตอบเพื่อรวมประเด็นของคุณ
Sat Yam

นี่เป็นสิ่งที่คำตอบอีกสองคำได้พูดไปแล้ว
Jeff Schaller
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.