Saya menginstal zsh di Mac saya. dan sekarang saya ingin menjadikannya shell default, bukan Bash. Tapi sepertinya saya mengalami kesalahan berikut:
$ echo $SHELL
/bin/bash
$ chsh -s /usr/bin/zsh
Changing shell for harshamv.
Password for harshamv:
chsh: /usr/bin/zsh: non-standard shell
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?/bin/zsh
?Jawaban:
3 langkah mudah:
which zsh
ini memberi Anda jalan menuju zshchsh -s /bin/zsh
atau ganti jalur ke zsh Anda jika berbedasumber
/usr/bin/zsh
untuk/etc/shells
memecahkan masalah.Jawaban yang benar seharusnya mengatasi masalah Anda:
Alasannya adalah karena
chsh
hanya akan menerima shell yang ditentukan dalam file / etc / shells, seperti yang Anda lihat dengan membaca manual untukchsh
:Untuk mengatasi masalah ini dan menjadikan zsh sebagai shell default, Anda harus:
Jelas, saya berasumsi bahwa
zsh
itu menghalangi Anda di sini. Solusi ini juga akan berfungsi jika Anda, misalnya, memilih untuk menginstalzsh
denganbrew 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:sumber
/etc/shells: Permission denied
==> Lakukan itu sebagai gantinya:sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh
tersedia secara default karena suatu alasan. Meskipun tidak ada yang salah dengan mengklik melalui banyak menu untuk mencapai hal yang sama, itu tidak hanya tidak dapat dibawa dan rawan kesalahan, tetapi juga menyesatkan karena menyembunyikan dari pengguna tempat perubahan itu berasal.Saya bisa membuatnya bekerja dengan melakukan hal berikut:
echo $SHELL
sumber
/usr/local/bin/zsh
. Oleh karena itu Anda perlu mengedit di/etc/shells
bawah sudo dan menambahkan entri/usr/local/bin/zsh
sebelum Anda dapat memilih executable zsh yang diinstal hombrewDi MacBook pekerjaan saya, saya harus melakukan ini:
Kemudian saya harus membuat
.bash_profile
file untuk membuat terminal saya beralih ke z-shell setiap kali saya membukanya:Ide terakhir dipinjam dari sini .
sumber