Bagaimana menjadikan ZSH sebagai shell default?

124

Saya mencoba menetapkan ZSH sebagai shell default saya, namun tetap mengembalikan kembali ke bash.

Saya sudah mencoba kode ini:

sudo chsh -s $(which zsh)

Saya juga sudah mencoba:

sudo chsh -s /bin/zsh 

Juga mencoba perintah ini tanpa sudo. Ada ide tentang apa lagi yang perlu saya lakukan. Ketika menjalankan ZSH dari dalam bash itu memuat dan berfungsi dengan baik, tetapi saya ingin mengaturnya sebagai shell default.

Tom
sumber

Jawaban:

217

Hanya menggunakan chsh:

chsh -s $(which zsh)

tanpa sudo harus bekerja. Jika Anda menggunakannya sudoakan mengubah shell bukan untuk pengguna Anda yang bekerja tetapi untuk root

Akhirnya, keluar dari komputer Anda dan masuk kembali .

Penyelesaian masalah:

Florian Diesch
sumber
17
Saya memiliki masalah yang sama dan jawabannya tidak menyelesaikannya
Aswin Murugesh
@AswinMurugesh Periksa jawaban saya
Shailesh Kalamkar
9
Anda juga dapat menjalankan sudo chsh -s / bin / zsh userName
Micha Roon
15
Catatan: Saya harus memulai ulang sistem saya sebelum ini berlaku.
KevinO
tidak, itu tidak berhasil.
Haha TTpro
40

Saya menemukan ini di forum pengguna super

Buka / etc / passwd:

sudo vi /etc/passwd

Temukan baris dengan nama pengguna Anda:

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

dan ganti bash dengan zsh:

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

Logout dan login kembali agar perubahan diterapkan.

Shailesh Kalamkar
sumber
11
Anda harus sangat berhati-hati dengan pendekatan ini - biasanya bukan ide terbaik untuk bermain-main dengan/etc/passwd
Thomas Ward
Meskipun saya tidak menggunakan metode ini, itu membantu saya memverifikasi efekchsh -s `which zsh`
jchook
HA Ya total ini kacau pengguna saya. Tidak dapat masuk kembali.
Mark Carpenter Jr
6

Anda juga dapat melakukan ini:

buka file bashrc Anda di editor favorit Anda

sudo nano ~/.bashrc

kemudian tambahkan baris di bawah bagian atas file

exec zsh

Ini akan menjalankan perintah setiap kali Anda memuat terminal dan menjalankan zsh shell Anda.

Saddam H
sumber
13
dan itu juga akan merusak semua pekerjaan non-interaktif Anda ( scpmisalnya).
Jakuje
Maaf untuk downvote, tetapi mengubah /etc/passwdatau chshsolusi yang lebih baik dan lebih dapat diandalkan.
Timo
Terima kasih sudah melakukannya. @Timo Saya melakukan perubahan pada / etc / passwd dan atau chsh tapi default saya tetap kembali ke bash. Saya menambahkan exec zsh sesuai respons yang diposting dan itu berhasil.
Stryker
3

Jika zsh bukan / bin / zsh maka chsh tidak akan berfungsi. Di Ubuntu itu adalah / usr / bin / zsh. melakukan chsh -s /usr/bin/zshatau chsh -s `which zsh`seharusnya bekerja. Juga perlu masuk kembali ke sesi desktop.

jbp
sumber
Pada VPS Ubuntu saya ini / bin / zsh
Wilhelm Erasmus
Di Ubuntu saya, saya melihatnya di keduanya /bin/zshdan/usr/bin/zsh
blue_chip
2
Di tambang (14,04, dengan zsh dari repo utama), ada dua zsh, dan keduanya merupakan symlink dua lapis: / usr / bin / zsh -> / etc / alternative / zsh-usrbin -> / bin / zsh5 dan / bin / zsh -> / etc / alternative / zsh -> / bin / zsh5
wjandrea
1

Saya memiliki masalah dengan izin untuk mengganti shell di bawah pengguna saat ini tetapi selanjutnya membantu saya (Anda harus mengatur folder 'zsh' yang benar untuk komputer Anda):

sudo chsh -s /bin/zsh <myUserName>
Rib47
sumber
0

Aneh, jawaban yang "diterima" tidak berhasil bagiku

chsh: PAM: Authentication failure

Untuk mengatasi masalah ini, edit / etc / passwd Anda dan pastikan itu menunjuk ke lokasi zsh. (Anda dapat menemukan ini dengan menjalankan "which zsh") Dalam kasus saya, pengguna saya disebut "webmaster" tampak seperti ini:

webmaster:x:1001:1001:webmaster,,,:/var/www/webmaster:/usr/bin/zsh
John Crawford
sumber
Saya percaya itu seharusnya meminta kata sandi. Saya mendapat kesalahan yang sama pada instalasi mint saya sebelumnya. Yang sekarang berfungsi dengan baik
Wilhelm Erasmus
Orang lain memiliki masalah yang sama, dan ternyata mereka telah berlari chsh -s zsh, yang membuat entri passwd mereka salah.
wjandrea
0

Ketikkan terminal

sudo chsh -s $(which zsh) root
Valmor Nascimento
sumber