จะทำให้ ZSH เป็นเชลล์เริ่มต้นได้อย่างไร


124

ฉันพยายามที่จะตั้ง ZSH เป็นเปลือกเริ่มต้นของฉัน แต่มันก็กลับไปทุบตี

ฉันได้ลองใช้รหัสนี้แล้ว:

sudo chsh -s $(which zsh)

ฉันยังลอง:

sudo chsh -s /bin/zsh 

ลองคำสั่งเหล่านี้โดยไม่ใช้ sudo ความคิดเห็นใด ๆ เกี่ยวกับสิ่งอื่นที่ฉันต้องทำ เมื่อรัน ZSH จากภายใน bash จะโหลดขึ้นและทำงานได้ดี แต่ฉันต้องการตั้งเป็นเชลล์เริ่มต้น

คำตอบ:


217

เพียงแค่ใช้chsh:

chsh -s $(which zsh)

ไม่ sudoควรทำงาน ถ้าคุณใช้sudoมันจะเปลี่ยนเชลล์ไม่ใช่สำหรับผู้ใช้ที่ทำงาน แต่สำหรับรูท

สุดท้ายออกจากระบบคอมพิวเตอร์ของคุณแล้วลงชื่อเข้าใช้อีกครั้ง

การแก้ไขปัญหา:


17
ฉันมีปัญหาเดียวกันและคำตอบไม่ได้แก้ปัญหา
Aswin Murugesh

@AswinMurugesh ตรวจสอบคำตอบของฉัน
Shailesh Kalamkar

9
คุณสามารถเรียกใช้ชื่อผู้ใช้ sudo chsh -s / bin / zsh ได้ด้วย
Micha Roon

15
หมายเหตุ: ฉันต้องรีสตาร์ทระบบก่อนจึงจะมีผล
KevinO

ไม่มันไม่ทำงาน
ฮ่าฮ่า TTpro

40

ฉันพบสิ่งนี้ในฟอรัมsuperuser

เปิด / etc / passwd:

sudo vi /etc/passwd

ค้นหาบรรทัดด้วยชื่อผู้ใช้ของคุณ:

username:x:1634231:100:Your Name:/home/username:/bin/bash

และแทนที่ bash ด้วย zsh:

username:x:1634231:100:Your Name:/home/username:/bin/zsh

ออกจากระบบและล็อกอินกลับเพื่อให้การเปลี่ยนแปลงมีผล


11
คุณควรระมัดระวังด้วยวิธีนี้ - ไม่ใช่ความคิดที่ดีที่สุดที่จะเข้าไปยุ่งกับ/etc/passwd
โทมัส

แม้ว่าฉันจะไม่ได้ใช้วิธีการนี้ แต่ก็ช่วยให้ฉันตรวจสอบผลกระทบของchsh -s `which zsh`
jchook

ฮะใช่ทั้งหมดนี้ระยำผู้ใช้ของฉัน ไม่สามารถลงชื่อเข้าใช้ใหม่ได้
Mark Carpenter Jr

6

คุณอาจทำสิ่งนี้:

เปิดไฟล์ bashrc ของคุณในโปรแกรมแก้ไขที่คุณชื่นชอบ

sudo nano ~/.bashrc

จากนั้นเพิ่มบรรทัดด้านล่างส่วนบนของไฟล์

exec zsh

มันจะรันคำสั่งทุกครั้งที่คุณโหลดเทอร์มินัลและรันเชลล์ zsh ของคุณ


13
และจะทำลายงานที่ไม่ใช่แบบโต้ตอบทั้งหมดของคุณ ( scpเช่น)
Jakuje

ขออภัยสำหรับ downvote แต่การเปลี่ยนแปลง/etc/passwdหรือchshเป็นวิธีแก้ปัญหาที่ดีกว่าและน่าเชื่อถือ
Timo

ขอบคุณที่ทำ @Timo ฉันทำการเปลี่ยนแปลงใน / etc / passwd และหรือ chsh แต่ค่าเริ่มต้นของฉันยังคงกลับไปทุบตี ฉันเพิ่ม exec zsh ตามการตอบกลับที่โพสต์และใช้งานได้
สไตรเกอร์

3

หาก zsh ไม่ใช่ / bin / zsh ดังนั้น chsh จะไม่ทำงาน บน Ubuntu มัน / usr / bin / zsh ดังนั้นการทำchsh -s /usr/bin/zshหรือchsh -s `which zsh`ควรทำงาน ยังต้องลงชื่อเข้าใช้เซสชันเดสก์ท็อปอีกครั้ง


ใน Ubuntu VPS ของฉันมัน / bin / zsh
Wilhelm Erasmus

ที่ Ubuntu ฉันเห็นทั้งใน/bin/zshและ/usr/bin/zsh
blue_chip

2
ในเหมือง (14.04 โดยมี zsh จาก repo หลัก) มีสอง zsh และทั้งสองเป็น symlink สองชั้น: / usr / bin / zsh -> / etc / ทางเลือก / zsh-usrbin -> / bin / zsh5 และ / bin / zsh -> / etc / Alternatives / zsh -> / bin / zsh5
wjandrea

1

ฉันมีปัญหาเกี่ยวกับการอนุญาตให้เปลี่ยนเชลล์ภายใต้ผู้ใช้ปัจจุบัน แต่ต่อไปจะช่วยฉัน (คุณควรตั้งค่าโฟลเดอร์ 'zsh' ที่ถูกต้องสำหรับคอมพิวเตอร์ของคุณ):

sudo chsh -s /bin/zsh <myUserName>

0

แปลกคำตอบที่ "ยอมรับ" ไม่ได้ผลสำหรับฉันอย่างที่ฉันได้รับ

chsh: PAM: Authentication failure

หากต้องการแก้ปัญหานี้ให้แก้ไข / etc / passwd ของคุณและตรวจสอบให้แน่ใจว่าชี้ไปที่ตำแหน่ง zsh (คุณสามารถค้นหาได้โดยเรียกใช้ "ซึ่ง zsh") ในกรณีของฉันผู้ใช้ของฉันชื่อ "เว็บมาสเตอร์" มีลักษณะดังนี้:

webmaster:x:1001:1001:webmaster,,,:/var/www/webmaster:/usr/bin/zsh

ฉันเชื่อว่ามันควรจะถามรหัสผ่าน ฉันได้รับข้อผิดพลาดเดียวกันในการติดตั้งมิ้นต์ก่อนหน้าของฉัน ปัจจุบันหนึ่งทำงานได้ดีแม้ว่า
Wilhelm Erasmus

คนอื่นมีปัญหาเดียวกันและปรากฏว่าพวกเขาวิ่งchsh -s zshซึ่งทำให้การป้อนรหัสผ่านไม่ถูกต้อง
wjandrea

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