Você pode usar o recurso de depuração do shell para ver exatamente o que está acontecendo quando o bash chama um shell interativo. A seguir, mostramos todos os aliases atribuídos quando um shell interativo é gerado a partir de um shell de logon:
bash -x -l -i -c 'exit' 2>&1 | grep ' alias '
-x
-> ativar a depuração
-l
-> shell de login
-i
-> shell interativo
-c
-> comando
A execução da saída do comando é necessária para que o shell retorne. o-i
é necessária neste caso porque o bash não iria criar um ambiente interativo para executar um comando contrário.
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 em 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
Nesta saída de amostra, mostra que .bashrc define um alias para ls
, .foo aliases t
e, em seguida, .bashrc substitui o alias anterior de t
.