chsh -s / usr / bin / zsh tidak berfungsi

24

Saya mencoba mengubah shell saya menjadi zsh menggunakan chshperintah secara permanen , tetapi tidak berfungsi.

zsh diinstal (melalui apt) dan berfungsi dengan baik ketika saya memohonnya langsung dari terminal bash prompt. Tapi saya tidak bisa mendapatkan zsh untuk memuat terminal secara default, dan chsh melakukan sesuatu yang aneh:

$ 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

Tampaknya chsh telah berhasil mengubah /etc/ passwd dengan benar, tetapi bukan variabel $ SHELL env. Dengan demikian, terminal baru selalu dimulai dengan bash dan bukan zsh.

Saya tidak yakin ke mana harus mencari cara untuk memecahkan masalah ini. .bashrc, meskipun itu tidak dipanggil sampai shell ditentukan? Setiap bantuan dihargai.

Kurtosis
sumber
1
Tidak bisakah Anda mengganti shell setelah login kembali ke sistem?
vine_user
Periksa jawaban ini .
Pablo A

Jawaban:

34

Anda harus keluar lagi agar perubahan ini berlaku. Shell yang didefinisikan dalam file / etc / passwd adalah shell login Anda :-) Jadi Anda perlu login sebenarnya untuk itu.

Januari
sumber
2
Terima kasih. Saya sudah terbiasa bisa membuat perubahan ke linux tanpa me-reboot, itu tidak terjadi pada saya.
Kurtosis
Saya harus benar-benar melakukan reboot agar bisa berfungsi - saya kira itu entah bagaimana menghubungkan kembali saya ke sesi shell yang ada.
Chris Kimpton
Saat menggunakan koneksi ssh, bahkan jika Anda keluar, server mungkin tidak menutup koneksi dan shell sepanjang jalan. Jadi, Anda mungkin perlu mematikan proses (ssh dan sh) milik pengguna Anda. (Saya punya masalah ini dan mudah untuk menemukan solusinya tetapi tetap saja, saya harus datang ke pos ini untuk melihat bahwa saya harus keluar.)
John Hamilton