Isso significa que um shell não-login é usado?
Sim. (Depende do que você entende por "shell de login").
Meu entendimento é que ambos os shells de login e não-login envolvem .bashrc e, portanto, a diferença é que o perfil não é originado por um shell que não seja de login.
incorreto. Um bash de login lê .profile
e, como acontece, .profile
sources .bashrc
do Ubuntu. Um bash interativo de não-login lê .bashrc
. Uma chamada bash não-login, não interativa não lê .bashrc
(ou .profile
, para esse assunto).
Quando você executa ssh foo command
, o comando é executado por um shell não interativo. No entanto, um shell não-login executado pelo SSH é um caso especial e o bash lê .bashrc
. Outros shells podem ou não ler seus respectivos arquivos rc, então pode ser o caso de alguns shells que nenhum arquivo de configuração é lido. O Bash não é o melhor e o fim de todos os shells.
Os shells não interativos são executados por vários motivos e, geralmente, não há motivo para carregar o conjunto completo de personalizações definido por um usuário.
Por que queremos ignorar o perfil do usuário?
Veja acima. Além disso, o SSH tem outras maneiras de definir variáveis de ambiente.