A mensagem do shell começa com -sh
. Isso dá duas pistas importantes:
- O líder
-
indica que esse é um shell de login. Por convenção, o programa de login (o programa onde você digita seu nome de usuário e senha, que podem serlogin
, gdm, sshd,…) inicia um shell com o nome do programa configurado para começar com-
extra. Dessa forma, o shell sabe que é um shell de login e lê~/.profile
ou outro arquivo de inicialização de sessão. - O nome do shell é
sh
. Portanto, o shell de login do usuário é definido como/bin/sh
e não como bash. O/bin/sh
é um link simbólico para o bash ou outro shell, como o dash. Quando bash é invocado sob o nomesh
, ele não lê seus arquivos de configuração, apenas os arquivos padrão (~/.profile
e/etc/profile
em shell de login, nada em shells não-login), para compatibilidade. Então, de qualquer forma,~/.bashrc
não é lido.
Se você invocar explicitamente o bash, ele lerá .bashrc
. Você precisará passar o sinal -t
para ssh
para informar que ele abre um terminal, mesmo que você tenha especificado um comando.
ssh -t testuser@nameofhost bash
Você pode querer mudar o shell de login do usuário para ser bash em vez de /bin/sh
. Como testuser
, execute o comando
chsh -s /bin/bash
Altere o caminho para /usr/local/bin/bash
ou onde quer que bash esteja localizado. Se você invocar chsh
sem argumentos, você receberá um menu mostrando quais shells tem permissão para selecionar.