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".