Assumindo que seu shell é Bash (o padrão no Ubuntu), estas são as diferenças:
-
Quando executado como um shell login , o Bash lerá
~/.bash_profile(ou, se isso não existir,~/.profile) na inicialização. Em alguns casos, esse arquivo também lê~/.bashrc. -
Quando executado como um shell sem login , o Bash lerá
~/.bashrc.
Então, por que você vê comportamentos diferentes quando executado como um shell de login / não-login? Porque o seu .bash_profile / .profile está fazendo coisas diferentes do seu .bashrc .
A solução que eu recomendaria no seu caso é copiar as personalizações feitas para .bash_profile / .profile , colar elas em .bashrc e desativar "Executar comando como um shell de login".