シェルデバッグ機能を使用して、bashが対話型シェルを呼び出したときに何が起こっているかを正確に確認できます。以下は、対話型シェルがログインシェルから生成されたときに割り当てられるすべてのエイリアスを示しています。
bash -x -l -i -c 'exit' 2>&1 | grep ' alias '
-x
->デバッグを有効にする
-l
->ログインシェル
-i
->インタラクティブシェル
-c
->コマンド
シェルが戻るためには、コマンド出口を実行する必要があります。これ-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 aliasesのエイリアスを設定し、t
.bashrcが以前のエイリアスを上書きすることを示していますt
。