PATH
내 환경 변수에 원치 않는 경로가 추가되었습니다.
범인을 어떻게 찾을 수 있나요?
나는 이미 보았다:
- ~/.bashrc
- ~/.bash_profile
- /etc/bashrc
- /etc/구성 파일
- /etc/환경
답변1
이는 아마도 과잉일 수 있으며 스크립트를 실행하는 순서를 추적하여 (물론) 찾으려고 노력해야 하지만 때로는 트리를 구문 분석하기 어려워집니다. 따라서 간단하게 grep하여 찾을 수 있습니다.
grep --regexp='PATH=.*/path/that/you/try/to/find' --binary-files=without-match -r /
이는 매우 긴 프로세스이며 전체 프로세스 동안 하드 드라이브가 제대로 작동하지 않을 것이라는 점을 명심하십시오(기본적으로 가지고 있는 모든 텍스트 파일을 읽게 됩니다).
답변2
노력하다:
grep -rF --binary-files=without-match ':/the/undesired/path' / 2> /dev/null
또는 /the/undesired/path
이면 $UNKNOWN_VARIABLE_NAME_FOR_THE_UNDESIRED_PATH
분명히 작동하지 않습니다.
/home/user/undesired/path
이는 일반적으로 로 지정 됩니다 $HOME/undesired/path
.
:
변수 할당을 가져오지 않고 동일한 작업을 실행합니다 .
grep -rF --binary-files=without-match '/the/undesired/path' / 2> /dev/null
그래도 문제가 해결되지 않으면 모든 PATH
작업을 찾아 수동으로 필터링하세요.
grep -rwF --binary-files=without-match 'PATH=' / 2> /dev/null
답변3
find
및 개별적으로 파일을 찾고 검색하려면 각 파일의 페이지를 xargs
참조하세요 .man
sudo find / -type f -print0 | \
xargs -0 --no-run-if-empty \
grep -l 'PATH'
PATH를 언급하는 모든 파일 이름을 나열합니다. 추가의
| xargs less
파일 보기.
우리가 아는 한 /some/deep/path/bin
으로 표현될 수 있기 때문에 검색할 수 없습니다.$SDP/bin