Como mudar de csh para bash como shell padrão

34

Eu tenho cshcomo meu shell padrão, como mostrado por echo $SHELL. Quero mudar para bashmeu shell padrão. Tentei as seguintes abordagens sem sucesso:

  1. Com chsheu recebo:

    chsh: can only change local entries; use ypchsh instead.
  2. Com ypchsheu recebo:

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

Eu só tenho .chsrcno meu diretório pessoal e não consigo encontrar nenhum .profilearquivo /etc. Como posso alterar meu shell padrão para bash?

Sumod
fonte
4
Pode ser útil saber em qual tipo de unix você é.
enzotib 13/09/11

Respostas:

43
  1. Verifique se você está bashinstalado.

  2. Saiba a localização de bash:

    which bash

    ou

    whereis bash

    Abaixo, assumirei que a localização é /bin/bash.

    a) Se você possui direitos administrativos, basta executar como root:

    usermod -s /bin/bash YOUR_USERNAME

    (substituindo YOUR_USERNAMEpelo seu nome de usuário).

    b) Se você não tem adm. direitos, você ainda pode executar o bash --loginlogin, colocando a linha abaixo no final do seu ( .cshrcou .profileno seu diretório pessoal):

    setenv SHELL /bin/bash
    exec /bin/bash --login
rozcietrzewiacz
fonte
2b. Verifique se bashestá enumerado /etc/shellscom o caminho correto.
manatwork 13/09/11
@manatwork Isso seria relevante para 2a , não para 2b. E útil apenas em uma configuração de sistema estranha / interrompida para determinar por que a solução não funcionou.
rozcietrzewiacz
11
1. SHELL = / bin / bash fornece um erro de comando não encontrado. 2. Sua solução fornece um shell bash como prompt. Mas isso não altera meu shell de login. Obrigado pela ajuda.
Sumod 14/09/11
11
Aqui está o que eu fiz para resolver isso. 1. exec / bin / bash --login no arquivo .cshrc 2. defina SHELL = / bin / bash e exporte o SHELL no arquivo / etc / profile. Obrigado.
Sumod 14/09/11
2
Ah, desculpe - eu quis dizer a primeira linha a ser export SHELL=/bin/bash. Na verdade, há uma maneira melhor do que isso - veja a atualização.
rozcietrzewiacz
13

Entre em contato com o administrador do sistema. Ele fez as coisas erradas. Se você é o administrador do sistema, em seguida, você tem coisas configurar errado.

A mensagem de erro parece bastante direta. Você não está yppasswdexecutando no dcsun2. Deveria ser.

Mas, ao fazer uma pesquisa rápida no Google, esse resultado indica que você receberá esse erro se yppasswdestiver executando no cliente e no servidor. Nesse caso, desative-o no cliente.


Se você estiver preso ao csh como seu shell de login, ainda poderá invocá-lo quando fizer login. Coloque os seguintes comandos no seu ~/.login(consulte também Alterando o shell padrão sem privilégios de administrador ou chsh ):

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

Substitua /usr/local/bin/bashpelo caminho correto, se necessário. Se tudo funcionar, remova sleep 2(o que atrasa durante o qual você pode pressionar Ctrl+Cpara ir para um prompt do csh, caso algo dê errado).

bahamat
fonte