Quando você efetua login, o arquivo ~/.profile
é lido pelo shell de login (ksh para você). Você pode instruir esse shell de login para substituir a si mesmo por bash. Você deve tomar algumas precauções:
- Substitua o shell de login apenas se for interativo. Isso é importante: caso contrário, o login no modo gráfico pode não funcionar (depende do sistema: alguns, mas nem todos os sistemas leem
~/.profile
ao efetuar login através de xdm ou similar), e expressões comossh foo '. ~/.profile; mycommand'
falharão. / li> - Verifique se o bash está disponível, para que você ainda possa efetuar login se o executável não estiver lá por algum motivo.
Você tem a opção de executar o bash como um shell de login ou não. A única grande diferença em torná-lo um shell de login é que ele carregará ~/.bash_profile
ou ~/.profile
. Portanto, se você executar o bash como shell de login, tenha muito cuidado para ter um ~/.bash_profile
ou tome cuidado para não executar o bas da recursividade de ~/.profile
. Não há nenhuma vantagem real de ter ~/.profile
executado pelo bash em vez de ksh, então eu recomendo não fazer isso.
Defina também a variável de ambiente SHELL
para bash, para que programas como emuladores de terminal invoquem esse shell.
Aqui está o código para mudar para o bash. Coloque no final de ~/.profile
.
case $- in
*i*)
# Interactive session. Try switching to bash.
if [ -z "$BASH" ]; then # do nothing if running under bash already
bash=$(command -v bash)
if [ -x "$bash" ]; then
export SHELL="$bash"
exec "$bash"
fi
fi
esac