Sie können die Shell-Debugging-Funktion verwenden, um genau zu sehen, was passiert, wenn Bash eine interaktive Shell aufruft. Das Folgende sollte Ihnen alle Aliase anzeigen, die zugewiesen werden, wenn eine interaktive Shell aus einer Anmeldeshell erzeugt wird:
bash -x -l -i -c 'exit' 2>&1 | grep ' alias '
-x
-> Debugging aktivieren
-l
-> Login-Shell
-i
-> interaktive Shell
-c
-> befehl
Das Ausführen des Befehlsexits ist erforderlich, damit die Shell zurückkehrt. Das -i
ist in diesem Fall nicht erforderlich , da bash würde nicht eine interaktive Umgebung einrichten sonst einen Befehl auszuführen.
Hier ist ein Beispiel aus meinem System:
$ bash -x -l -i -c 'exit' 2>&1 | grep ' alias '
++ alias 'ls=ls --color=auto'
$ alias -p
alias ls='ls --color=auto'
Um zu sehen, welche Datei zuletzt bezogen wurde, als der Alias zugewiesen wurde, um die aufgetretene Datei zu bestimmen, können Sie grep erweitern:
bash -x -l -i -c 'exit' 2>&1 | grep -E ' (alias|[.]|source) '
Dies kann zu Fehlalarmen führen, sollte jedoch in Ordnung sein, wenn Sie die zurückgegebenen Daten manuell überprüfen. Die Anzahl der '+' - Symbole vor dem ausgeführten Befehl gibt die Tiefe an.
+ . /home/jordan/.bashrc
++ alias 'ls=ls --color=auto'
++ . /home/jordan/.foo
+++ alias t=test
++ alias t=test2
In dieser Beispielausgabe wird gezeigt, dass .bashrc einen Alias für ls
.foo-Aliase festlegt t
und anschließend .bashrc den vorherigen Alias für überschreibt t
.