Bash
PATH 환경 변수 관리
수색…
통사론
- 경로 추가 : PATH = $ PATH : / new / path
- 경로 추가 : PATH = / new / path : $ PATH
매개 변수
매개 변수 | 세부 |
---|---|
통로 | 경로 환경 변수 |
비고
Bash 구성 파일 :
이 파일은 새로운 대화식 Bash 쉘이 시작될 때마다 제공됩니다.
GNU / Linux 시스템에서는 일반적으로 ~ / .bashrc 파일입니다. Mac에서는 ~ / .bash_profile 또는 ~ / .profile입니다.
수출:
PATH 변수는 한 번만 내 보내야합니다 (기본적으로 완료됩니다). 일단 내보내지면 내보내지며 변경 사항은 즉시 적용됩니다.
변경 승인:
Bash 구성 파일에 변경 사항을 적용하려면 해당 파일을 터미널 ( source /path/to/bash_config_file
)에서 다시로드해야합니다.
PATH 환경 변수에 경로 추가
PATH 환경 변수는 일반적으로 ~ / .bashrc 또는 ~ / .bash_profile 또는 / etc / profile 또는 ~ / .profile 또는 /etc/bash.bashrc (배포판 고유의 Bash 구성 파일)에 정의됩니다.
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/jdk1.8.0_92/bin:/usr/lib/jvm/jdk1.8.0_92/db/bin:/usr/lib/jvm/jdk1.8.0_92/jre/bin
이제 경로 (예 : ~/bin
)를 PATH 변수에 추가하려면 다음을 수행하십시오.
PATH=~/bin:$PATH
# or
PATH=$PATH:~/bin
그러나 이것은 현재 쉘 (및 서브 쉘)에서만 PATH를 수정합니다. 일단 쉘을 종료하면이 수정은 사라질 것입니다.
영구적으로 만들려면 ~ / .bashrc (또는 무엇이든) 파일에 해당 비트를 추가하고 파일을 다시로드해야합니다.
터미널에서 다음 코드를 실행하면 ~/bin
이 PATH에 영구적으로 추가됩니다.
echo 'PATH=~/bin:$PATH' >> ~/.bashrc && source ~/.bashrc
설명:
-
echo 'PATH=~/bin:$PATH' >> ~/.bashrc
는 ~ / .bashrc 파일의 끝에PATH=~/bin:$PATH
행을 추가합니다 (텍스트 편집기로 할 수 있습니다) -
source ~/.bashrc
는 ~ / .bashrc 파일을 다시로드합니다.
이것은 경로가 이미 포함되어 있는지 확인하고 그렇지 않은 경우에만 경로를 추가하는 코드입니다 (터미널에서 실행).
path=~/bin # path to be included
bashrc=~/.bashrc # bash file to be written and reloaded
# run the following code unmodified
echo $PATH | grep -q "\(^\|:\)$path\(:\|/\{0,1\}$\)" || echo "PATH=\$PATH:$path" >> "$bashrc"; source "$bashrc"
PATH 환경 변수에서 경로 제거
PATH 환경 변수에서 PATH를 제거하려면 ~ / .bashrc 또는 ~ / .bash_profile 또는 / etc / profile 또는 ~ / .profile 또는 /etc/bash.bashrc (distro specific) 파일을 편집하고에 대한 할당을 제거해야합니다. 그 특별한 길.
정확한 할당을 찾는 대신 최종 단계의 $PATH
에서 대체 할 수 있습니다.
다음은 $PATH
에서 $PATH
$path
를 안전하게 제거합니다 :
path=~/bin
PATH="$(echo "$PATH" |sed -e "s#\(^\|:\)$(echo "$path" |sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g')\(:\|/\{0,1\}$\)#\1\2#" -e 's#:\+#:#g' -e 's#^:\|:$##g')"
영구적으로 만들려면 bash 설정 파일의 끝에 추가해야합니다.
다음과 같이 기능적으로 할 수 있습니다.
rpath(){
for path in "$@";do
PATH="$(echo "$PATH" |sed -e "s#\(^\|:\)$(echo "$path" |sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g')\(:\|/\{0,1\}$\)#\1\2#" -e 's#:\+#:#g' -e 's#^:\|:$##g')"
done
echo "$PATH"
}
PATH="$(rpath ~/bin /usr/local/sbin /usr/local/bin)"
PATH="$(rpath /usr/games)"
# etc ...
이렇게하면 여러 경로를 더 쉽게 처리 할 수 있습니다.
노트:
- 이 코드를 Bash 구성 파일 (~ / .bashrc 또는 기타)에 추가해야합니다.
-
source ~/.bashrc
를 실행하여 Bash 구성 (~ / .bashrc) 파일을 다시로드하십시오.