A execução de su
chama o bash no modo não-login. Bash então lê .bashrc
para configurar seu ambiente.
A execução de su -
chama o bash como um shell de login. Neste modo /etc/profile
é executado se existir. O Bash também procura ~/.bash_profile
, ~/.bash_login
e ~/.profile
executando o primeiro arquivo encontrado. Embora não documentado, parece executar ~/.bashrc
quando nenhum deles existe.
Se você tiver um comportamento diferente, é provável que você esteja usando arquivos diferentes para inicializar o bash, dependendo de como ele é chamado.
Eu testei qual arquivo foi chamado adicionando linhas como echo .bashrc
ao final dos arquivos existentes. Isso exibirá quais configurações são chamadas.
Há mais detalhes sobre esse comportamento na seção INVOCATION da página bash
man.
A conclusão de tabulação está disponível em bash
, mas não em sh
. root
normalmente tem sh
como seu shell, pois bash
pode não estar disponível. Os usuários geralmente têm bash
como seu shell.
Tente executar bash
como root
antes de tentar a conclusão da tabulação. Isso deve permitir a conclusão da tabulação.