Questão Como eu faço Bash meu shell padrão no Ubuntu?


eu tenho um .bash_profile no meu diretório home, mas ele não está sendo executado no login. Se eu fizer o seguinte, as coisas parecem ser como eu esperava:

ssh myhost
bash
source ~/.bash_profile

Mas normalmente isso tudo acontece no login. Pensamentos?


78


origem


Também certifique-se de que você não tem um ~/.profile ou ~/.bash_login, como apenas um dos três é originado. (Eu esqueci a ordem exata.) - grawity
Por que você tem uma pergunta diferente no título e diferente no corpo da sua postagem? - pabouk


Respostas:


Usar:

chsh

Digite sua senha e informe o caminho para o shell que você deseja usar.

Para Bash isso seria /bin/bash. Para Zsh isso seria /usr/bin/zsh.


139



+1 - não tenho certeza porque o OP decidiu que editar o arquivo de senha era uma escolha melhor, mas essa é a melhor resposta - kdgregory
Sim, me derrote para isso, esse é o jeito padrão. - John T
E no Ubuntu o caminho para o shell que você quer usar é ... / bin / bash (e / bin / sh não é o mesmo) - Harry Wood
Ou você pode usar sudo chsh -s /bin/bash username - Oleg Vaskevich
Você deve efetuar logout e efetuar login novamente para ver essa alteração. - Neil Traft


Além da resposta de akira, você também pode editar o seu / etc / passwd arquivo para especificar seu shell padrão.

Você encontrará uma linha como este exemplo:

john:x:1000:1000:john,,,:/home/john:/bin/sh

O shell é especificado no final.


33



Melhor usar o comando 'chsh' como sugerido por akira - menos chance de estragar algo por engano. - Lars Haugseth
para não mencionar 'chsh' está disponível quando você não pode escrever em / etc / passwd - quack quixote
Mas se você tiver acesso a modificar o /etc/passwd e você é cuidadoso, a resposta de John é fazer bom uso das ferramentas que o sistema oferece. - AJP
Você deve efetuar logout e efetuar login novamente para ver essa alteração. - Neil Traft
Se você estiver executando um servidor sem senhas de usuário - fornecendo acesso somente através de chaves ssh públicas / privadas ... também faz muito sentido. chsh requer uma senha. - Keith John Hutchison


Você pode verificar o seu programa de terminal. Pode ser configurado para executar / bin / sh em vez de / bin / bash

O Bash executa .bash_profile apenas para sessões de login. O .bashrc é executado para todas as sessões bash, não apenas para sessões de login. Tente pesquisar o .bash_profile a partir de .bashrc (evite dependências circulares!) Ou configure seu programa terminal para executar / bin / bash -l como um programa shell.


2



programa de terminal não tem nada a ver com o problema porque é o sshd na máquina remota, que gera o novo shell. - akira


Uma alternativa é renomear seu script de inicialização para .profile. Este arquivo está sendo usado pela maioria Conchas Unix.


2





Ativar bash:

$ /bin/bash

Alterar shell para o usuário:

$ sudo usermod -s /bin/bash username

Onde:

  -s, --shell SHELL             new login shell for the user account

0



(1) O que você quer dizer com “enable bash”? (2) O usuário quer mudar seu próprio shell de login em um sistema remoto. Por que você acha que ele tem sudo acesso nesse sistema? Por que você fornece instruções em termos de alteração do login shell de outro usuário? - G-Man