환경변수에 어떤 파일이 설정/추가되는지, 우선순위를 알 수 있나요?

환경변수에 어떤 파일이 설정/추가되는지, 우선순위를 알 수 있나요?

$PATH내 환경 변수( 및 $MANPATH친구) 중 일부는 부분적으로 다른 소스 파일에 설정되어 있습니다.

빨리 수집할 수 있는 명령이나 방법이 있었으면 좋겠다는 생각이 듭니다.어느 부분, 특정 환경 변수에서무슨 문서.

.bashrc예를 들어, 내 $PATH는 분명히 , /etc/paths, ... 에 설정(추가)되어 있는데 /etc/paths.d/X11여전히 내 $PATH.

환경 변수에 영향을 미치는 파일을 수동으로 찾아내는 데 시간이 오래 걸립니다. 모든 세터를 추적하는 불필요한 노력을 우회할 수 있는 유용한 방법이 있을 것입니다... 아니면 저만 그렇게 생각합니까?

답변1

일반적으로 PATH시스템 의존도가 높은 방식으로 로그인된 프로그램에 의해 초기 값으로 설정됩니다(pam_env공통 기여자), /etc/profile포함 된 파일은 ~/.profile해당 값을 계속 수정합니다.

PATH.bashrc다음에 속하지 않은 환경 설정 에 대한 변경 사항을 제거합니다 .bashrc. 다음을 참조하세요..bashrc와 .bash_profile의 차이점.

ssh localhost세션 시작이 그래픽 모드보다 훨씬 간단하므로 먼저 텍스트 모드(예: 를 사용하여)로 로그인해 보십시오 .

set -xand의 시작 부분 에 넣으세요 . 쉘은 표준 오류 스트림에서 수행한 작업에 대한 추적을 인쇄합니다. 추적에서 할당을 찾습니다./etc/profile~/.profilePATH

환경 변수 할당에는 우선순위 개념이 없습니다. 마지막으로 할당한 사람이 승리합니다.

답변2

PATH는 .bashrc 파일뿐만 아니라 어디에서나 설정할 수 있습니다. 시스템에는 파일이 있을 가능성이 /etc/profile높으며 /etc/profile.local시스템의 모든 사용자에 대한 기본 경로를 설정합니다. 사용자별 변경 사항이나 추가 사항이 파일에 없으면 .profile파일에 설정 .bashrc하거나 시스템의 기본값을 사용할 수 있습니다.

귀하에게만 영향을 미치는 변경 사항을 적용하려면 .profile다음 양식을 사용하여 입력하세요.

export PATH=/new/directory:$PATH

따라서 현재 경로를 완전히 다시 작성하는 대신 편집합니다.

( man bash또는여기.profile) .bashrc에서는 와 등의 차이점과 로그인하거나 쉘을 시작할 때 어떤 파일을 어떤 순서로 읽는지 설명합니다.

답변3

그러한 메커니즘이 존재할 가능성은 거의 없습니다. 쉘에서 env 변수의 값을 변경하는 방법이 얼마나 많은지 생각해 보십시오.

그러나 운이 좋을 수도 있습니다 set -x.

관련 정보