No manual do bash
As regras relativas à definição e uso de aliases são um tanto confusas. O Bash sempre lê pelo menos uma linha completa de entrada antes de executar qualquer um dos comandos nessa linha. Os aliases são expandidos quando um comando é lido, não quando é executado. Portanto, uma definição de alias que aparece na mesma linha que outro comando não entra em vigor até que a próxima linha de entrada seja lida. Os comandos que seguem a definição de alias nessa linha não são afetados pelo novo alias. Esse comportamento também é um problema quando as funções são executadas. Os aliases são expandidos quando uma definição de função é lida, não quando a função é executada , porque uma definição de função é ela mesma um comando composto. Como consequência, os aliases definidos em uma função não estarão disponíveis até que a função seja executada . Para ser seguro, sempre coloque definições de alias em uma linha separada e não use alias em comandos compostos.
As duas frases "Aliases são expandidas quando uma definição de função é lida, não quando a função é executada" e "aliases definidos em uma função não estão disponíveis até que após a execução dessa função" pareçam contrárias uma à outra.
Você pode explicar o que eles significam, respectivamente?
.bashrc
arquivos na parte superior.