$PATH
우분투에서 디렉토리를 추가 하고 변경 사항을 영구적으로 만들려면 어떻게합니까?
$PATH
우분투에서 디렉토리를 추가 하고 변경 사항을 영구적으로 만들려면 어떻게합니까?
답변:
설정된 경로 .bash_profile
는 bash 로그인 쉘 ( bash -l
) 에만 설정됩니다 . 경로를 입력 .profile
하면 전체 데스크탑 세션에서 사용할 수 있습니다. 그것은 심지어 메타 시티가 그것을 사용할 것이라는 것을 의미합니다.
예를 들면 ~/.profile
다음과 같습니다.
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
Btw에서는 환경을 살펴봄으로써 프로세스의 PATH 변수를 확인할 수 있습니다 /proc/[pid]/environ
([pid]를의 숫자로 대체하십시오 ps axf
). 예를 들어grep -z "^PATH" /proc/[pid]/environ
bash
로그인 쉘은 또는 존재하는 .profile
경우 구문 분석하지 않습니다 . 보낸 사람 :.bash_profile
.bash_login
man bash
~ / .bash_profile, ~ / .bash_login 및 ~ / .profile을 순서대로 찾고 존재하고 읽을 수있는 첫 번째 명령을 읽고 실행합니다.
에 대한 정보 또는 대화 형 비 로그인 셸 에 대한 자세한 내용은 아래 답변을 참조 하거나 디스플레이 관리자 세션에 스크립트를 넣거나 사용 하여 모든 사용자에 대한 값을 전체적으로 설정하십시오 ..pam_environment
.bashrc
/etc/profile.d/
/etc/X11/Xsession.d/
PATH="$HOME/bin:$PATH"
그래서 추가합니까?
.bashrc
홈 디렉토리에서 편집 하고 다음 행을 추가하십시오.
export PATH="/path/to/dir:$PATH"
.bashrc
변경 사항을 적용 하려면 소스 또는 로그 아웃 / 로그인 (또는 터미널을 다시 시작)해야합니다. 를 .bashrc
입력 하려면 간단히
$ source ~/.bashrc
.bashrc
"제공합니까? "터미널을 다시 시작"하는 방법은 무엇입니까?
. .bashrc
하지 .bashrc
:) 또는 source .bashrc
그 문제에 대해
모든 사용자에게 적용되는 영구적 인 시스템 전체 환경 변수 를 정의하기 위해 권장되는 위치 는 다음과 같습니다.
/etc/environment
(디폴트 PATH
가 정의 되어있는 곳 )
이것은 데스크탑 또는 콘솔, 그놈 터미널 또는 TTY, 비 또는 빛에서 작동합니다.)
편집하려면 Alt+를 누르고 다음 F2을 입력하십시오.
gksudo gedit /etc/environment
(또는 sudo
좋아하는 텍스트 편집기에서 파일을 사용하여 엽니 다 )
변경 사항을 적용하려면을 실행하십시오 . /etc/environment
. 이 파일은 단순한 스크립트이므로 PATH
환경 변수에 새 경로를 실행하고 할당합니다 . env 실행을 확인 PATH
하고 목록 의 값 을 확인 하십시오.
관련 :
source /etc/environment
변경 사항을 다시로드 하기 위해 실행해야했습니다.
우분투의 정식 방법은 다음과 같습니다.
아래에 새 파일을 작성하십시오 /etc/profile.d/
sudo vi /etc/profile.d/SCRIPT_NAME.sh
거기에 추가하십시오 :
export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
실행 권한을 부여
sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
GUI에 더 익숙한 완전한 초보자 (예 : 나) :
$HOME
폴더에 있습니다..profile
하고 텍스트 편집기로 열기를 클릭하십시오 .PATH="$PATH:/my/path/foo"
..profile
).$PATH:
기존 PATH 정의를 포함하는 비트 를 추가해야합니다
특정 사용자 만 사용할 수있는 지속적 환경 변수의 경우. 우분투 공식 문서를 강력히 추천합니다.
https://help.ubuntu.com/community/EnvironmentVariables
위의 문서를 참조하여 Android SDK 경로 도구 를 다음과 같이 설정 했습니다.
~/.pam_environment
홈 디렉토리에 파일을 작성 합니다.PATH DEFAULT=${PATH}:~/android-sdk-linux/tools
.그 줄을 ~/.bashrc
파일 에 넣으십시오 .
터미널을 열 때마다 공급됩니다.
편집 : (당신이 명중 할 때를 포함하여 모든 쉘에 적용하는 일반적인 설정은 아래의 의견을 바탕으로 Alt- F2유니티에서), 당신에 줄을 추가 ~/.profile
파일. 그러나 PATH
터미널을 열면 경로가 환경 에 두 번 추가되므로 두 가지를 모두 수행해서는 안됩니다 .
$HOME/.profile
개인 설정 또는 /etc/profile
모든 사용자에 대한 경로를 설정했다고 생각했습니다 . 그러나 bash에만 필요한 경우 둘 중 하나가 작동한다고 가정합니다.
~/.bashrc
하면 열려있는 터미널에서만 사용할 수 있습니다. 예를 들어 Alt + F2를 누르고 해당 디렉토리에서 명령을 실행하려고하면 찾을 수 없습니다. ~/.profile
또는로 설정 ~/.pam_environment
하면 그놈 세션 (또는 사용하는 DE)이 세션을 상속합니다. PATH를 추가 ~/.bashrc
하면 다른 대화식 bash 셸에서 대화식으로 bash를 열고 실행하면 여러 번 추가되는 단점이 있습니다.
~/.profile
이 경우에도 함께 갈 것입니다 .
.bashrc에 추가하면 작동하지만 경로 변수를 설정하는보다 전통적인 방법은 다음 줄을 추가하여 .bash_profile에 있다고 생각합니다.
PATH=$PATH:/my/path/foo
export PATH
이 스레드 에 따르면 Ubuntu의 동작이 RedHat 및 클론과 약간 다른 것처럼 보입니다.
.bash_profile
. bash가 .bash_profile
(대화식으로 로그인 할 때)를 찾지 못하면 .profile
대신 찾아서 사용합니다. 기본적으로 .profile
와 .bashrc
우분투가 있습니다. 그리고 .profile
우리가 대해 pam_env을 무시하면 환경 변수를 설정하는 올바른 장소입니다.
BASH 스크립트 폴더를 "설치"할 때마다 $HOME/bin
최신 우분투 버전에서 대부분의 .profile 파일에 있는 폴더 에 대한 테스트 패턴을 따릅니다 . 다음과 같은 테스트를 설정했습니다
if [ -d "/usr/scripts" ]; then
PATH="/usr/scripts:$PATH"
fi
시간의 100 % 정도만 작동하며 GUI 텍스트 편집기 /scripts
에서 내 $HOME
폴더에 가까운 곳 으로 이동하기로 결정한 경우 빠른 "바꾸기"를 사용하여 GUI 텍스트 편집기에서 자유롭게 변경할 수 있습니다. 우분투 설치 6 건에서는 그렇게하지 않았지만 "항상 내일"있습니다. 에스
BZT
당신의 편집하기 위해 권장되는 방법은 PATH
출신 /etc/environment
파일
의 출력 예 /etc/environment
:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
예를 들어, 새 경로를 추가하려면 /home/username/mydir
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/mydir"
그런 다음 PC를 재부팅하십시오.
시스템 전체 환경 변수
특정 사용자가 아닌 시스템 전체에 영향을 미치는 환경 변수 설정에 적합한 파일은 / etc / environment입니다. 대안은 /etc/profile.d 디렉토리에 목적에 맞는 파일을 작성하는 것입니다.
/ etc / 환경
이 파일은 특히 시스템 전체 환경 변수 설정을위한 것입니다. 스크립트 파일은 아니지만 한 줄에 하나씩 할당 표현식으로 구성됩니다.
참고 : / etc / environment에서는 변수 확장이 작동하지 않습니다.
자세한 정보는 여기에서 찾을 수 있습니다 : EnvironmentVariables
터미널을 열고 gedit .profile
다음을 입력 하고 삽입하십시오.
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
#the following line add Bin where you dont have a Bin folder on your $HOME
PATH="$PATH:/home/mongo/Documents/mongodb-linux-i686-2.2.2/bin"
터미널을 닫고 열면 작동해야합니다.
시스템 스크립트가 이것을 사용하지 않더라도 $HOME/bin
PATH 환경 변수에 경로 (예 :)를 추가하려는 경우에는
PATH="${PATH:+${PATH}:}$HOME/bin"
추가하는 대신 ( PATH="$PATH:$HOME/bin"
)
PATH="$HOME/bin${PATH:+:${PATH}}"
앞에 (를 대신하여 PATH="$HOME/bin:$PATH"
) 추가 합니다.
이렇게하면 $PATH
처음에 비어 있을 때 가짜 선행 / 트레일 링 콜론을 피할 수 있으며 이로 인해 원하지 않는 효과가 발생할 수 있습니다.