내용이 $PATH에 속하는 모든 파일을 찾는 방법은 무엇입니까?

내용이 $PATH에 속하는 모든 파일을 찾는 방법은 무엇입니까?

$PATHDebian 11의 터미널 에 들어가면 몇 가지 사항이 동일하다는 것을 알 수 있습니다. /etc/profile파일을 확인했는데 ~/.bashrc출력의 일부도 포함되어 있지 않습니다 $PATH.

  1. /etc/profile합산에 포함되지 않은 내용은 어디에 있나요 ~/.bashrc?
  2. 출력을 구성하는 내용이 있는 모든 파일을 찾는 방법은 무엇입니까 $PATH?
  3. 출력 내용이 $PATH반복되지 않도록 하려면 어떻게 해야 합니까?

감사해요.

답변1

이는 $PATH변수가 어디에 어떻게 채워지는지 알아내는 신뢰할 수 있는 방법입니다. strace설치되어 있지 않은 경우 먼저 설치하십시오( sudo apt install strace).

  1. 사용되지 않은 getty 프로세스를 찾으세요. 없을 수도 있습니다.

pgrep agetty

  1. 없으면 Ctrl+Alt+F4를 누르면 새로 생성됩니다.
  2. 이제 그래픽 세션과 같은 다른 곳에서 루트로 이 명령을 실행하십시오(돌아가려면 Alt + F1 또는 Alt + F7을 사용하십시오).
sudo strace -e file --string-limit=500 -f -o /tmp/login.log -p `pgrep agetty`
  1. Ctrl + Alt + F4를 누르고 로그인하세요. 다른 작업은 수행하지 마십시오.
  2. Ctrl + C를 눌러 strace 프로세스를 종료합니다.

이제 이 /tmp/login.log파일을 확인하여 셸이 연 파일이 있는지 확인할 수 있습니다. 이제 grep모든 항목을 찾고 PATH 변수가 정의/재정의된 위치를 찾을 수 있습니다.

관련 정보