Varsayılan kabuk nasıl ZSH olarak değiştirilir - chsh “geçersiz kabuk” diyor


36

ZSH'yi bir sanal makineye kurdum, kaynağından derledim. ZSH'nin yeri çıktılarımı /usr/local/bin/zshçalıştırdığım chsh -s /usr/local/bin/zshzaman chsh: /usr/local/bin/zsh is an invalid shell. Ben de bunu sudo ile denedim. Bunu nasıl değiştirebilirim?



6
@Mikel, hayır, bu soru “benim için çalışmıyor chsh” değil “ bilmiyorum ” chshdır.
cjm

Yanıtlar:


48

Zsh 'a ekle /etc/shells:

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

Şimdi zsh'yi shell olarak ayarlamak için chsh kullanabilirsiniz:

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

Bu belgelere bakın: Giriş kabuğunuzu değiştirme



3

İlk önce, zshgeçerli bir kabuk olarak listelenip listelenmediğini kontrol edin .

cat /etc/shells

Eğer zshlistede yoksa, yükleyin. Örneğin, kullanıyorsanızapt

sudo apt-get install zsh

Yapın, tekrar 1. adım ve yolunu görün zsh. Benim durumumda, hem /usr/bin/zshve /usr/zshlistelenir. Yorumda belirtildiği gibi @ Stéphane Chazelas, kabuğu sıfırdan derleyip kurmak isterseniz, yolu eklemeyi unutmayın /etc/shells.

Kullanarak kabuğunu değiştirin

chsh -s /usr/bin/zsh

Gönderen adam sayfası :

-s, --shell SHELLKullanıcının yeni giriş kabuğunun adı. Bu alanın boş bırakılması, sistemin varsayılan giriş kabuğunu seçmesine neden olur.

Çıkış yap ve tekrar giriş yap.


Evet, kabuğu bir işletim sistemi paketinin bir parçası olarak yüklerseniz, işletim sistemi paketi tipik olarak kabuğu ekleyecektir /etc/shells. Buradaki nokta, kabuğu elle derleyip kurarsanız, yolu /etc/shellskendinize de elle eklemeniz gerekir .
Stéphane Chazelas

İyi bir nokta. 'Apt' gibi bir paket yöneticisi düşünüyordum. Yanıtınızı eklemek için cevabı değiştirdim.
Sat Yam

Aslında bu, diğer iki cevabın zaten söylediği şey.
Jeff Schaller
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.