Isso está acontecendo porque quando você faz o login via SSH, o shell que você obtém é um login shell . Em contraste, para usar a terminologia da documentação bash , quando você abre uma janela do Terminal em uma sessão de login gráfica já iniciada, o shell que você obtém ainda é um shell interativo , mas é não é um shell de login .
Em man bash :
Quando bash é chamado como um shell de login interativo ou como shell não interativo com a opção - login , ele primeiro lê e executa comandos do arquivo
/etc/profile, se esse arquivo existir. Depois de ler esse arquivo, ele procura~/.bash_profile,~/.bash_logine~/.profile, nessa ordem, e lê e executa comandos do primeiro que existe e é legível. o A opção - noprofile pode ser usada quando o shell é iniciado para inibir esse comportamento.Quando um shell de login sai, o bash lê e executa comandos do arquivo
~/.bash_logout, se existir.Quando um shell interativo que não é um shell de login é iniciado, o bash lê e executa comandos de
/etc/bash.bashrce~/.bashrc, se esses arquivos existirem. Isso pode ser inibido usando o Opção - norc . A opção - rcfile arquivo forçará o bash a ler e executar comandos do arquivo em vez de/etc/bash.bashrce~/.bashrc.
Então você deve verificar se tem algum desses arquivos:
-
~/.bash_profile -
~/.bash_login -
~/.profile
Se fizer isso, edite o primeiro que encontrar e adicione $HOME/bin ao seu caminho. Se você não fizer isso, crie um deles para essa finalidade. (O melhor para criar é ~/.profile , já que outros shells usarão isso também.)
Você quase certamente tem ~/.profile , já que o comportamento padrão do Ubuntu é criar isso com qualquer nova conta de usuário (incluindo a primeira conta, criada quando você instala o Ubuntu).
No entanto, por padrão, esse arquivo já contém as linhas necessárias para adicionar seu diretório bin privado ao $PATH :
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Então, é um pouco estranho que isso não esteja funcionando para você.
Dependendo de suas necessidades, convém fazer ~/.profile (ou ~/.bash_login ou ~/.bash_profile ) chamar ~/.bashrc :
source ~/.bashrc
Mas seria ainda melhor incluir apenas linhas adicionando $HOME/bin ao seu $PATH em ~/.profile (ou ~/.bash_login ou ~/.bash_profile ), mas não ~/.bashrc . Afinal, se você fizer isso para cada shell de login, isso também deve acontecer quando você fizer login graficamente e for herdado por todos os seus shells interativos que não são shells de login.