Cara mengganti shell default ke ZSH - chsh mengatakan “shell tidak valid”


36

Saya menginstal ZSH pada VM milik saya, tempat saya mengkompilasinya dari sumber. Lokasi ZSH adalah /usr/local/bin/zshketika saya menjalankan chsh -s /usr/local/bin/zshoutputnya chsh: /usr/local/bin/zsh is an invalid shell. Saya juga mencoba ini dengan sudo juga. Bagaimana saya bisa mengubahnya?



6
@Mikel, tidak, pertanyaan itu adalah "Saya tidak tahu tentang chsh" daripada " chshtidak bekerja untuk saya".
cjm

Jawaban:


48

Tambahkan zsh ke /etc/shells:

command -v zsh | sudo tee -a /etc/shells

Anda sekarang dapat menggunakan chsh untuk mengatur zsh sebagai shell:

sudo chsh -s "$(command -v zsh)" "${USER}"

Lihat dokumentasi ini: Mengubah shell login Anda



3

Pertama, periksa apakah zshterdaftar sebagai shell yang valid oleh

cat /etc/shells

Jika zshtidak terdaftar, instal. Misalnya, jika Anda menggunakanapt

sudo apt-get install zsh

Lakukan, langkah 1 lagi dan lihat jalannya zsh. Dalam kasus saya, keduanya /usr/bin/zshdan /usr/zshterdaftar. Seperti @ Stéphane Chazelas disebutkan dalam komentar, jika Anda ingin mengkompilasi dan menginstal shell dari awal, pastikan untuk menambahkan path /etc/shells.

Ganti shell menggunakan

chsh -s /usr/bin/zsh

Dari halaman manual :

-s, --shell SHELLNama shell login baru pengguna. Pengaturan bidang ini menjadi kosong menyebabkan sistem memilih shell login default.

Logout dan login lagi.


Ya, jika Anda menginstal shell sebagai bagian dari paket OS, kemasan OS biasanya akan menambahkan shell ke /etc/shells. Intinya di sini adalah bahwa jika Anda mengkompilasi dan menginstal shell dengan tangan, Anda juga perlu menambahkan path/etc/shells diri Anda sendiri dengan tangan.
Stéphane Chazelas

Poin bagus. Saya memikirkan manajer paket seperti 'apt'. Saya telah mengedit jawaban untuk memasukkan poin Anda.
Sab Yam

Ini pada dasarnya adalah apa yang sudah dikatakan oleh dua jawaban lainnya.
Jeff Schaller
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.