Jawaban yang benar seharusnya mengatasi masalah Anda:
chsh: / usr / bin / zsh: shell non-standar
Alasannya adalah karena chsh
hanya 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 zsh
itu menghalangi Anda di sini. Solusi ini juga akan berfungsi jika Anda, misalnya, memilih untuk menginstal zsh
dengan 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 -l
keluaran? (Jika tidak berhasil, apa isinya/etc/shells
?) Apakah Anda yakin ini gagal dan bukan hanya peringatan? Apakah menambahkan di/usr/bin/zsh
sana membuat ini berhasil?