$PATH
Debian 11의 터미널 에 들어가면 몇 가지 사항이 동일하다는 것을 알 수 있습니다. /etc/profile
파일을 확인했는데 ~/.bashrc
출력의 일부도 포함되어 있지 않습니다 $PATH
.
/etc/profile
합산에 포함되지 않은 내용은 어디에 있나요~/.bashrc
?- 출력을 구성하는 내용이 있는 모든 파일을 찾는 방법은 무엇입니까
$PATH
? - 출력 내용이
$PATH
반복되지 않도록 하려면 어떻게 해야 합니까?
감사해요.
답변1
이는 $PATH
변수가 어디에 어떻게 채워지는지 알아내는 신뢰할 수 있는 방법입니다. strace
설치되어 있지 않은 경우 먼저 설치하십시오( sudo apt install strace
).
- 사용되지 않은 getty 프로세스를 찾으세요. 없을 수도 있습니다.
pgrep agetty
- 없으면 Ctrl+Alt+F4를 누르면 새로 생성됩니다.
- 이제 그래픽 세션과 같은 다른 곳에서 루트로 이 명령을 실행하십시오(돌아가려면 Alt + F1 또는 Alt + F7을 사용하십시오).
sudo strace -e file --string-limit=500 -f -o /tmp/login.log -p `pgrep agetty`
- Ctrl + Alt + F4를 누르고 로그인하세요. 다른 작업은 수행하지 마십시오.
- Ctrl + C를 눌러 strace 프로세스를 종료합니다.
이제 이 /tmp/login.log
파일을 확인하여 셸이 연 파일이 있는지 확인할 수 있습니다. 이제 grep
모든 항목을 찾고 PATH 변수가 정의/재정의된 위치를 찾을 수 있습니다.