chsh -s / usr / bin / zsh ไม่ทำงาน


24

ฉันพยายามเปลี่ยนเชลล์เป็น zsh อย่างถาวรโดยใช้chshคำสั่ง แต่มันไม่ทำงาน

มีการติดตั้ง zsh (ผ่าน apt) และทำงานได้ดีเมื่อฉันเรียกใช้โดยตรงจากเทอร์มินัล bash prompt แต่ฉันไม่สามารถรับ zsh เพื่อโหลดในอาคารโดยค่าเริ่มต้นและ chsh กำลังทำอะไรแปลก ๆ :

$ echo $SHELL
/bin/bash
$ which zsh
/usr/bin/zsh
$ chsh -s /usr/bin/zsh
Password: 
$ echo $SHELL
/bin/bash
$ grep kurtosis /etc/passwd
kurtosis:x:1000:1000:kurtosis,,,:/home/kurtosis:/usr/bin/zsh

ดูเหมือนว่า chsh ได้จัดการเพื่อเปลี่ยน / etc / passwd อย่างถูกต้อง แต่ไม่ใช่ตัวแปร $ SHELL env เทอร์มินัลใหม่จะเริ่มต้นด้วยการทุบตีไม่ใช่ zsh

ฉันไม่แน่ใจว่าจะหาทางแก้ไขปัญหานี้ได้ที่ไหน .bashrcแม้ว่ามันจะไม่ถูกเรียกใช้จนกว่าจะมีการระบุเชลล์? ความช่วยเหลือใด ๆ ชื่นชม


1
คุณไม่สามารถเปลี่ยนเปลือกหลังจากที่คุณเข้าสู่ระบบอีกครั้ง?
vine_user

ตรวจสอบคำตอบนี้
Pablo

คำตอบ:


34

คุณต้องออกจากระบบอีกครั้งเพื่อให้การเปลี่ยนแปลงเหล่านี้มีผล เชลล์ที่กำหนดในไฟล์ / etc / passwd คือเชลล์ล็อกอินของคุณ:-) ดังนั้นคุณต้องลงชื่อเข้าใช้จริง


2
ขอบคุณ ฉันเคยชินกับการเปลี่ยนแปลง linux โดยไม่ต้องรีบูตเครื่องมันไม่ได้เกิดขึ้นกับฉัน
Kurtosis

จริง ๆ แล้วฉันต้องทำการรีบูตเพื่อให้มีผลบังคับใช้ - ฉันคิดว่ามันจะเชื่อมต่อฉันกับเซสชันเชลล์ที่มีอยู่อีกครั้ง
Chris Kimpton

ในขณะที่ใช้การเชื่อมต่อ ssh แม้ว่าคุณจะออกจากเซิร์ฟเวอร์อาจไม่ปิดการเชื่อมต่อและเปลือกตลอดทาง ดังนั้นคุณอาจต้องฆ่ากระบวนการ (ssh และ sh) ที่เป็นของผู้ใช้ของคุณ (ฉันมีปัญหานี้และหาวิธีแก้ปัญหาได้ง่าย แต่ถึงอย่างนั้นฉันก็ต้องมาที่โพสต์นี้เพื่อดูว่าฉันต้องออกจากระบบ)
John Hamilton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.