Çalıştırmak yapamıyorsanız chsh
yönetici ayrıcalıklarına sahip olmadığından, yapar birisiyle konuşmak .
Büyük olasılıkla chsh
root olmayan bir sistem olarak kullanamazsınız , çünkü kullandığınız sistem chsh
, örneğin sistem yalnızca /etc/passwd
dosya yerine NIS veya LDAP kullandığı için çalışamayacak şekilde yapılandırılmıştır . Belki de sisteminizin yöneticisi sadece biraz kontrol sağlamak istiyor.
Kabuğunuzu değiştirme prosedürü kuruluşunuzun politikalarına bağlıdır. chsh
Normalde yapılanları yapan yerel bir komut olabilir . Veya bir kabuk değişikliği talep eden bir destek bileti göndermeniz gerekebilir.
Diğer cevapların çoğu iyidir, ancak yöneticileriniz makul şekilde yanıt veriyorsa, başlangıç komut dosyalarınızı çiğnemekle uğraşmak istemeyebilirsiniz. Muhtemelen zsh -l
giriş yaptıktan sonra yönetici hesabımı güncellemeye gelene kadar manuel olarak çağırırdım.
Akılda tutulması gereken başka bir şey: Bazen farklı mermiler aynı başlangıç dosyalarını kullanabilir. Örneğin, sh
ve bash
yürütebileceği hem $HOME/.profile
ve csh
ve tcsh
yürütebileceği hem $HOME/.login
ve $HOME/.cshrc
(gerçi gibi kabuk özgü başlatma dosyaları .bashrc
, .bash_profile
ve .tcshrc
geçersiz kılabilir). Varsayılan kabuğunuz /bin/csh
buysa ve kullanmak istiyorsanız /bin/tcsh
, .login
çağırmanızın güncellenmesi /bin/tcsh -l
sonsuz bir döngü oluşturabilir. belirli başlangıç dosyalarını zsh
yürütmek için olmaz bash
, bu yüzden bu sizin için bir sorun değildir.
Çoğu kabukları Eğer (çalıştırıyorsanız kabuk tespit değişkenleri ayarlamak $BASH_VERSION
, $tcsh
, $ZSH_VERSION
). Tercih ettiğiniz kabuğunuzu çağırmak için başlangıç kodunu yazacaksanız, onu içine almak kötü bir fikir değildir, bu if
nedenle yalnızca bu kabuğu çalıştırmıyorsanız çalıştırılır. Konsolebox'un cevabındaki kodu kullanarak :
if [ "${ZSH_VERSION:-unset}" = "unset" ] ; then
export SHELL=/bin/zsh
exec /bin/zsh -l
fi
(Eklemenin karmaşıklığı, "${ZSH_VERSION:-unset}"
yalnızca "$ZSH_VERSION"
yapma ihtimalinize, set -o unset
tanımsız bir değişkene referans verilmesine neden olan bir seçeneğin bir hata olmasına izin verir.)
zsh
üzerine.bashrc
dosyaya. Çıkış ve giriş ve bitti!