Możesz użyć funkcji debugowania powłoki, aby zobaczyć dokładnie, co się dzieje, gdy bash wywołuje interaktywną powłokę. Poniższe informacje powinny pokazywać wszystkie aliasy przypisane podczas odradzania się powłoki interaktywnej z powłoki logowania:
bash -x -l -i -c 'exit' 2>&1 | grep ' alias '
-x
-> włącz debugowanie
-l
-> powłoka logowania
-i
-> interaktywna powłoka
-c
-> polecenie
Uruchomienie polecenia exit jest wymagane, aby powłoka powróciła. Jest -i
to wymagane w tym przypadku, ponieważ bash nie skonfigurowałby środowiska interaktywnego do uruchomienia polecenia w przeciwnym razie.
Oto przykład z mojego systemu:
$ bash -x -l -i -c 'exit' 2>&1 | grep ' alias '
++ alias 'ls=ls --color=auto'
$ alias -p
alias ls='ls --color=auto'
Aby zobaczyć, który plik był ostatnio pozyskiwany, gdy został przypisany alias w celu ustalenia pliku, w którym wystąpił, możesz rozszerzyć grep:
bash -x -l -i -c 'exit' 2>&1 | grep -E ' (alias|[.]|source) '
Może to zwracać wyniki fałszywie dodatnie, ale powinno być w porządku, jeśli ręcznie sprawdzasz zwrócone dane. Liczba symboli „+” przed wykonanym poleceniem wskazuje głębokość.
+ . /home/jordan/.bashrc
++ alias 'ls=ls --color=auto'
++ . /home/jordan/.foo
+++ alias t=test
++ alias t=test2
W tym przykładzie wyjściowym pokazano, że .bashrc ustawia alias dla ls
, .foo aliasy t
, a następnie .bashrc zastępuje poprzedni alias t
.