쉘 디버깅 기능을 사용하여 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
.