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.