Вы можете использовать функцию отладки оболочки, чтобы точно видеть, что происходит, когда bash вызывает интерактивную оболочку. Следующее должно показать вам все псевдонимы, которые назначаются при создании интерактивной оболочки из оболочки входа в систему:
bash -x -l -i -c 'exit' 2>&1 | grep ' alias '
-x
-> включить отладку
-l
-> оболочка входа
-i
-> интерактивная оболочка
-c
-> команда
Выполнение команды exit необходимо для возврата оболочки. В -i
этом случае требуется, потому что bash не установил бы интерактивную среду для запуска команды в противном случае.
Вот пример из моей системы:
$ bash -x -l -i -c 'exit' 2>&1 | grep ' alias '
++ alias 'ls=ls --color=auto'
$ alias -p
alias ls='ls --color=auto'
Чтобы увидеть, какой файл был получен в последний раз, когда псевдоним был назначен для определения файла, в котором он возник, вы можете расширить grep:
bash -x -l -i -c 'exit' 2>&1 | grep -E ' (alias|[.]|source) '
Это может вернуть ложные срабатывания, но должно быть хорошо, если вы вручную проверяете возвращенные данные. Количество символов «+» перед выполненной командой указывает глубину.
+ . /home/jordan/.bashrc
++ alias 'ls=ls --color=auto'
++ . /home/jordan/.foo
+++ alias t=test
++ alias t=test2
В этом примере вывода показано, что .bashrc устанавливает псевдоним для ls
.foo alias t
, а затем .bashrc переопределяет предыдущий псевдоним t
.