Jawaban yang benar seharusnya mengatasi masalah Anda:
chsh: / usr / bin / zsh: shell non-standar
Alasannya adalah karena chshhanya akan menerima shell yang ditentukan dalam file / etc / shells, seperti yang Anda lihat dengan membaca manual untuk chsh:
chsh akan menerima nama path lengkap dari semua file yang dapat dieksekusi di sistem. Namun, itu akan mengeluarkan peringatan jika shell tidak terdaftar di file / etc / shells.
Untuk mengatasi masalah ini dan menjadikan zsh sebagai shell default, Anda harus:
$ sudo echo "$(which zsh)" >> /etc/shells
$ chsh -s $(which zsh)
Jelas, saya berasumsi bahwa zshitu menghalangi Anda di sini. Solusi ini juga akan berfungsi jika Anda, misalnya, memilih untuk menginstal zshdengan brew install zsh.
EDIT (terima kasih untuk ThisIsFlorianK atas komentarnya) :
Bergantung pada pengaturan shell Anda, Anda mungkin mendapatkan pesan yang mengatakan /etc/shells: Permission denied. Anda dapat menemukan informasi tentang masalah ini di sini.
Untuk mengatasinya, gunakan yang berikut ini:
$ sudo sh -c "echo $(which zsh) >> /etc/shells"
$ chsh -s $(which zsh)
chsh -lkeluaran? (Jika tidak berhasil, apa isinya/etc/shells?) Apakah Anda yakin ini gagal dan bukan hanya peringatan? Apakah menambahkan di/usr/bin/zshsana membuat ini berhasil?