Parece-me que o seu único problema é simplesmente tentar executar o .bashrc quando não é executável. Mas esta não é a maneira correta de fazer isso; sempre que você fizer uma alteração neste arquivo, você deve "executá-lo" pelo comando:
source ~/.bashrc
Caso contrário, ele simplesmente criará um novo shell, executará o arquivo no ambiente do novo shell e, em seguida, descartará esse ambiente quando sair, perdendo assim sua alteração. Ao fazer o sourcing do script, ele é executado dentro do shell atual, portanto permanecerá em vigor.
Estou assumindo que o segundo erro foi porque bash_aliases não existe. Não é necessário, apenas recomendado para manter suas alterações separadas e organizadas. Só é usado se existir, e você pode ver o teste em .bashrc:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Isto diz que se o arquivo ~ / .bash_aliases existir, então execute-o.