$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 -x
and의 시작 부분 에 넣으세요 . 쉘은 표준 오류 스트림에서 수행한 작업에 대한 추적을 인쇄합니다. 추적에서 할당을 찾습니다./etc/profile
~/.profile
PATH
환경 변수 할당에는 우선순위 개념이 없습니다. 마지막으로 할당한 사람이 승리합니다.
답변2
PATH는 .bashrc 파일뿐만 아니라 어디에서나 설정할 수 있습니다. 시스템에는 파일이 있을 가능성이 /etc/profile
높으며 /etc/profile.local
시스템의 모든 사용자에 대한 기본 경로를 설정합니다. 사용자별 변경 사항이나 추가 사항이 파일에 없으면 .profile
파일에 설정 .bashrc
하거나 시스템의 기본값을 사용할 수 있습니다.
귀하에게만 영향을 미치는 변경 사항을 적용하려면 .profile
다음 양식을 사용하여 입력하세요.
export PATH=/new/directory:$PATH
따라서 현재 경로를 완전히 다시 작성하는 대신 편집합니다.
( man bash
또는여기.profile
) .bashrc
에서는 와 등의 차이점과 로그인하거나 쉘을 시작할 때 어떤 파일을 어떤 순서로 읽는지 설명합니다.
답변3
그러한 메커니즘이 존재할 가능성은 거의 없습니다. 쉘에서 env 변수의 값을 변경하는 방법이 얼마나 많은지 생각해 보십시오.
그러나 운이 좋을 수도 있습니다 set -x
.