Eu tenho um .bash_profile
no meu diretório pessoal, mas ele não está sendo executado no login. Se eu fizer o seguinte, as coisas parecerão como eu esperava:
ssh myhost
bash
source ~/.bash_profile
Mas normalmente isso tudo acontece no login. Pensamentos?
~/.profile
ou~/.bash_login
, pois apenas um dos três é fornecido. (Eu esqueci a ordem exata.)Respostas:
Usar:
Digite sua senha e indique o caminho para o shell que você deseja usar.
Para Bash, isso seria
/bin/bash
. Para Zsh, isso seria/usr/bin/zsh
.fonte
sudo chsh -s /bin/bash username
Além da resposta da akira, você também pode editar seu arquivo / etc / passwd para especificar seu shell padrão.
Você encontrará uma linha como este exemplo:
O shell é especificado no final.
fonte
/etc/passwd
e é cuidadoso, a resposta de John é fazer bom uso das ferramentas que o sistema fornece.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 logon. .bashrc é executado para todas as sessões do bash, não apenas para as sessões de login. Tente procurar .bash_profile no .bashrc (evite dependência circular!) Ou configure o programa do terminal para executar / bin / bash -l como um programa shell.
fonte
Uma alternativa é renomear seu script de inicialização para .profile. Este arquivo está sendo fonte pela maioria dos shells do Unix .
fonte
Ativar bash:
Alterar shell para o usuário:
Onde:
fonte
sudo
acesso nesse sistema? Por que você fornece instruções em termos de alteração do shell de login de outro usuário?Para tornar qualquer shell o seu padrão, verifique primeiro se ele está instalado e reconhecido no seu computador, observando o conteúdo de
/etc/shells
:Em seguida, use
chsh
para alterar seu shell:Referências
fonte
Não há informações suficientes em sua pergunta para que eu tenha certeza, mas já encontrei o mesmo problema antes. Supondo que você já tenha o / bin / bash definido na sua entrada de senha, pode ser a maneira como o seu terminal é iniciado.
Se você estiver tentando iniciar um terminal da GUI, diga
gnome-terminal
que pode estar esperando que o shell leia seus arquivos de inicialização do bash. No entanto, isso não acontece no Ubuntu e talvez em outros sistemas por padrão.A maneira como eu o consertei no Ubuntu é editar as preferências do gnome-terminal e definir o comando de inicialização para ser
bash -l
.-l
é a abreviação de--login
. Isso informa ao bash para inicializar como um shell de logon, o que faz com que ele carregue os scripts de inicialização que você obtém ao efetuar login via ssh.Tenho certeza de que há uma boa justificativa para que seja assim, mas achei surpreendente e um pouco irritante, pois compartilho os mesmos perfis nos sistemas linux, cywgin e macos.
fonte