Você pode usar o recurso de depuração do shell para ver exatamente o que está acontecendo quando o bash invoca um shell interativo. O seguinte deve mostrar todos os alias atribuídos quando um shell interativo é gerado a partir de um shell de login:
bash -x -l -i -c 'exit' 2>&1 | grep ' alias '
-
-x
- > ativar a depuração
-
-l
- > shell de login
-
-i
- > escudo interativo
-
-c
- > comando
A execução da saída de comando é necessária para que o shell retorne. O -i
é necessário neste caso porque o bash não configuraria um ambiente interativo para executar um comando de outra forma.
Aqui está um exemplo do meu sistema:
$ bash -x -l -i -c 'exit' 2>&1 | grep ' alias '
++ alias 'ls=ls --color=auto'
$ alias -p
alias ls='ls --color=auto'
Para ver qual arquivo foi originado pela última vez quando o alias foi atribuído para determinar o arquivo que ocorreu, você pode estender o grep:
bash -x -l -i -c 'exit' 2>&1 | grep -E ' (alias|[.]|source) '
Isso pode retornar falsos positivos, mas deve ser bom se você estiver inspecionando manualmente os dados retornados. O número de símbolos '+' na frente do comando executado indica a profundidade.
+ . /home/jordan/.bashrc
++ alias 'ls=ls --color=auto'
++ . /home/jordan/.foo
+++ alias t=test
++ alias t=test2
Neste exemplo de saída, ele mostra que .bashrc define um alias para ls
, .foo aliases t
e, em seguida, .bashrc substitui o alias anterior de t
.