Respostas:
Isso deve funcionar para o terminal atual:
. ~/.profile
.é um bashbuiltin e um sinônimo para source, consulte man bash:
. nome do arquivo [ argumentos ] nome do arquivo de
origem [ argumentos ] Leia e execute comandos do nome do arquivo no atual ambiente de shell (…).
~/.profile, essa alteração não entrar em vigor após . ~/.profilerecarga. Por exemplo, adicionar uma função ~/.profile: function externalip () { curl http://ipecho.net/plain; echo; }, então ~/.profile- FUNCIONA. Agora remova essa função e ~/.profile, . ~/.profilenovamente. A função ainda está disponível - somente a reinicialização (sair e entrar) a removerá.
Se você não deseja iniciar um novo shell, mas executar o script no shell atual, você o origina:
source script_name.sh
source = .
O Bash interno sourceé um sinônimo do .comando Bourne shell (ponto).