Varsayılan kabuk olarak csh'dan bash'a nasıl değiştirilir


34

Ben cshgösterdiği gibi, varsayılan kabuk olarak echo $SHELL. bashVarsayılan kabuğum olarak geçmek istiyorum . Boşuna aşağıdaki yaklaşımları denedim:

  1. İle chshI get:

    chsh: can only change local entries; use ypchsh instead.
  2. İle ypchshI get:

    ypchsh: yppasswdd not running on NIS master host ("dcsun2").

Sadece .chsrcana dizimdeyim ve .profileiçinde hiçbir dosya bulamıyorum /etc. Varsayılan kabuğumu nasıl değiştirebilirim bash?


4
Hangi tür unix olduğunuzu bilmek faydalı olabilir.
enzotib 13:11

Yanıtlar:


43
  1. Kurulduğundan emin ol bash.

  2. Konumu öğren bash:

    which bash

    veya

    whereis bash

    Aşağıda yerin olduğunu varsayacağım /bin/bash.

    a) Yönetici haklarınız varsa, sadece root olarak çalıştırın:

    usermod -s /bin/bash YOUR_USERNAME

    ( YOUR_USERNAMEkullanıcı adınızla değiştirerek ).

    b) Adm yoksa. haklarını, bash --logingiriş satırında, giriş satırının sonuna.cshrc veya sonuna ( aşağıdaki .profiledizini yazarak) koyarak devam edebilirsiniz:

    setenv SHELL /bin/bash
    exec /bin/bash --login
    

2b. Doğru bashşekilde girilip girilmediğini kontrol edin /etc/shells.
Manatwork

@manatwork 2b için değil, 2a ile ilgili olacaktır . Ve sadece çözümün neden işe yaramadığını belirlemek için tuhaf / bozuk bir sistem kurulumunda kullanışlıdır.
rozcietrzewiacz 13:11

1
1. SHELL = / bin / bash, hata bulunamayan bir komut veriyor. 2. Çözümünüz bana istemi olarak bir bash kabuğu verir. Ancak giriş kabuğumu değiştirmiyor. Yine de yardımın için teşekkürler.
37'de

1
İşte bunu çözmek için ne yaptım. 1. .cshrc dosyasında exec / bin / bash --login 2. SHELL = / bin / bash değerini ayarlayın ve sonra / etc / profile dosyasına SHELL dosyasını dışa aktarın. Teşekkürler.
Sumod

2
Ah, üzgünüm - olmak için ilk sırayı kastetmiştim export SHELL=/bin/bash. Aslında bundan daha iyi bir yol var - güncellemeye bakın.
rozcietrzewiacz

13

Sistem yöneticinize başvurun. İşleri yanlış ayarladı. Eğer siz sistem yöneticisi daha sonra size ettik yanlış yukarı set şeyler.

Hata mesajı oldukça ileri görünüyor. yppasswdDcsun2'de koşuya sahip değilsiniz. Olmalı.

Ancak hızlı bir google araması yaparak , hem istemcide hem de sunucuda çalışıyorsa bu hatayı alacağınızı gösteren bu sonuç ortaya çıkar yppasswd. Bu durumda müşteriyi kapatın.


Oturum açma kabuğunuz olarak csh ile takılı kalırsanız, oturum açtığınızda hala bash çağrısı yapmasını sağlayabilirsiniz. Aşağıdaki komutları içine koyun ~/.login(ayrıca bkz . Varsayılan kabuğun chsh veya yönetici ayrıcalıkları olmadan değiştirilmesi ):

sleep 2
if (-x /usr/local/bin/bash) then
  exec /usr/local/bin/bash -l
endif

/usr/local/bin/bashGerekirse uygun yolla değiştirin . Her şey işe yararsa, kaldırın sleep 2(bir Ctrl+Cşeyin yanlış gitmesi durumunda, bir csh istemine bırakmak için basabileceğiniz bir gecikmeyi geciktirir ).

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.