Puede usar la función de depuración de shell para ver exactamente lo que sucede cuando bash invoca un shell interactivo. Lo siguiente debería mostrarle todos los alias que se asignan cuando se genera un shell interactivo desde un shell de inicio de sesión:
bash -x -l -i -c 'exit' 2>&1 | grep ' alias '
-x
-> habilitar depuración
-l
-> shell de inicio de sesión
-i
-> shell interactivo
-c
-> comando
Se requiere ejecutar el comando exit para que el shell regrese. En -i
este caso, se requiere porque bash no configuraría un entorno interactivo para ejecutar un comando de lo contrario.
Aquí hay un ejemplo de mi 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 qué archivo se obtuvo por última vez cuando se asignó el alias para determinar el archivo en el que se produjo, puede extender el grep:
bash -x -l -i -c 'exit' 2>&1 | grep -E ' (alias|[.]|source) '
Esto puede devolver falsos positivos, pero debería estar bien si está inspeccionando manualmente los datos devueltos. El número de símbolos '+' delante del comando ejecutado indica la profundidad.
+ . /home/jordan/.bashrc
++ alias 'ls=ls --color=auto'
++ . /home/jordan/.foo
+++ alias t=test
++ alias t=test2
En esta salida de muestra, muestra que .bashrc establece un alias para ls
, .foo alias t
, y luego .bashrc anula el alias anterior de t
.