Para que um script seja executável sem executá-lo com um intérprete explícito (como em bash ~/bin/hello_world ), o arquivo de script deve ter seu conjunto "bit executável". Isso é feito com chmod (consulte o manual):
chmod u+x ~/bin/hello_world
Isso define o bit executável para o proprietário do arquivo.
Ou
chmod +x ~/bin/hello_world
Isso define o bit executável de acordo com seu umask atual. Supondo que seu umask seja 022 (um padrão comum), isso o tornará executável para todos os usuários.
A etapa source que você fez é um absurdo e deveria ter fornecido uma mensagem de erro (não é possível criar um diretório).
Se você precisar que a configuração do novo PATH seja "permanente", adicione a linha export PATH ao arquivo de inicialização do seu shell ( ~/.bashrc se você estiver usando bash como seu shell interativo).
Além disso, evite trabalhar em um prompt raiz interativo. Use uma conta de usuário sem privilégios para testar e explorar e use sudo dessa conta nas poucas vezes em que você precisa executar tarefas administrativas.