간단한 것들
PATH=$PATH:~/opt/bin
또는
PATH=~/opt/bin:$PATH
~/opt/bin
마지막 에 추가 할 것인지 (여러 디렉토리에 동일한 이름의 프로그램이있는 경우 다른 모든 디렉토리에서 검색 할 것인지 ) 또는 시작 (다른 모든 디렉토리보다 먼저 검색 할 것인지)에 추가할지 여부에 따라 다릅니다 .
여러 항목을 동시에 추가 할 수 있습니다. PATH=$PATH:~/opt/bin:~/opt/node/bin
또는 주문의 변형이 잘 작동합니다. export
추가 합병증이 있으므로 행의 시작 부분에 두지 마십시오 (아래 "bash 이외의 쉘에 대한 참고 사항"참조).
당신이 경우 PATH
여러 가지 구성 요소에 의해 구축됩니다, 당신은 중복 항목으로 끝날 수 있습니다. 참조 홈 디렉토리 경로가 명령을 유닉스에 의해 발견에 추가하는 방법? 및 awk 명령으로 중복 $의 PATH 항목을 제거 중복을 추가 피하거나 제거 할 수 있습니다.
그런데 일부 배포판 ~/bin
은 PATH가 있으면 자동으로 PATH에 넣습니다 .
넣을 곳
수정 라인을 넣어 PATH
에서 ~/.profile
, 또는 ~/.bash_profile
그 당신이 무엇을합니다.
참고 ~/.bash_rc
모든 프로그램에서 읽을되지 않고 ~/.bashrc
배쉬의 대화 형 인스턴스의 구성 파일입니다. 에 환경 변수를 정의해서는 안됩니다 ~/.bashrc
. 오른쪽 장소는 다음과 같은 환경 변수를 정의 할 수 PATH
있다 ~/.profile
(또는 ~/.bash_profile
당신의 bash 이외의 쉘을 걱정하지 않는 경우). 그들과 어떤 것을 사용해야합니까?를 참조하십시오 .
/etc/environment
또는에 넣지 마십시오 ~/.pam_environment
: 이들은 셸 파일이 아니며 $PATH
거기에서 와 같이 대체를 사용할 수 없습니다 . 이러한 파일에서는 변수를 재정의 할 수 있으며 추가 할 수는 없습니다.
일부 시스템 스크립트의 잠재적 합병증
export
변수가 이미 환경에있는 경우 필요하지 않습니다 . 변수 값의 변경 사항이 환경에 반영됩니다 .¹ PATH
는 거의 항상 환경에 있습니다. 모든 유닉스 시스템은 초기에 (보통 첫 번째 프로세스에서) 매우 일찍 설정했습니다.
로그인시 PATH
이미 환경에 있고 일부 시스템 디렉토리를 포함하고있을 수 있습니다. 어떤 종류의 가상 환경을 설정하는 동안 조기에 실행될 수있는 스크립트를 작성하는 경우 PATH
비어 있지 않고 내 보내야합니다. PATH
여전히 설정되어 있지 않으면 다음과 같이 PATH=$PATH:/some/directory
설정 PATH
되고 :/some/directory
빈 구성 요소 시작 부분은 현재 디렉토리 (와 같은 .:/some/directory
)를 의미합니다 .
if [ -z "${PATH-}" ]; then export PATH=/usr/local/bin:/usr/bin:/bin; fi
bash 이외의 쉘에 대한 참고 사항
bash는, KSH 및 zsh을에서 export
특수 구문이며, 모두 PATH=~/opt/bin:$PATH
하고 export PATH=~/opt/bin:$PATH
도 옳은 일을. 대시 ( /bin/sh
많은 시스템에 있음) 와 같은 다른 Bourne / POSIX 스타일 쉘 export
에서는 일반적인 명령으로 구문 분석되며 두 가지 차이점이 있습니다.
대시 같은 껍질에 그래서, export PATH=~/opt/bin:$PATH
설정 PATH
리터럴 문자열 ~/opt/bin/:
값으로 다음에 PATH
최초의 우주까지.
PATH=~/opt/bin:$PATH
(맨손으로 할당) 따옴표 가 필요하지 않으며 옳은 일을합니다. 당신이 사용하려는 경우 export
휴대용 스크립트에서, 당신은 쓸 필요 export PATH="$HOME/opt/bin:$PATH"
하거나 PATH=~/opt/bin:$PATH; export PATH
(또는 PATH=$HOME/opt/bin:$PATH; export PATH
이동성이 수락하지 않았습니다 Bourne 쉘 균일하게하기 위해 export var=value
및 틸드 확장을하지 않았다)를.
¹ 이것은 Bourne 쉘 (현대 POSIX 스타일 쉘이 아닌 실제 Bourne 쉘에서와 같음)에는 해당되지 않았지만 요즘에는 그러한 오래된 쉘이 발생할 가능성이 거의 없습니다.