Linux/Unix에서 $PATH를 영구적으로 설정하는 방법
Linux에서 $PATH에 디렉토리를 추가하여 다른 세션에서도 지속되도록 하려면 어떻게 해야 합니까?
배경
디렉토리를 경로에 추가하여 항상 Linux 경로에 있도록 하려고 합니다.시도해 봤습니다.
export PATH=$PATH:/path/to/dir
그러나 터미널을 종료하고 새 터미널 인스턴스를 시작할 때마다 이 경로가 손실되므로 내보내기 명령을 다시 실행해야 합니다.
영구적으로 설정하려면 어떻게 해야 합니까?
당신은 그것을 당신은 그것을 당신의~/.profile
또는~/.bashrc
java.
export PATH="$PATH:/path/to/dir"
작업에 따라 바이너리에 링크할 수도 있습니다.
cd /usr/bin
sudo ln -s /path/to/binary binary-name
이렇게 하면 세션의 나머지 기간 동안 경로가 자동으로 업데이트되지 않습니다.이 작업을 수행하려면 다음을 실행해야 합니다.
source ~/.profile
or
source ~/.bashrc
여러 가지 방법이 있습니다.실제 해결책은 목적에 따라 다릅니다.
변수 값은 일반적으로 시스템 또는 사용자 세션 시작 시 실행되는 할당 목록 또는 셸 스크립트에 저장됩니다.셸과 셸립트특셸정구사합니다야용해을문경우의크스▁a▁and를 사용해야 합니다.export
또는set
명령을 실행합니다.
시스템 전체
/etc/environment
고유한 할당 목록입니다.참조를 허용합니다.다음과 같은 시스템 전체 디렉토리를 추가하는 데 적합합니다./usr/local/something/bin
PATH
정의 변또는 정의수의정JAVA_HOME
PAM 및 systemd에서 사용됩니다./etc/environment.d/*.conf
고유한 할당 목록입니다.참조를 허용합니다.다음과 같은 시스템 전체 디렉토리를 추가하는 데 적합합니다./usr/local/something/bin
PATH
정의 변또는 정의수의정JAVA_HOME
구성은 일반적으로 각 도구(Java, Go 및 Node.js)당 하나씩 여러 파일로 분할할 수 있습니다.셸에 합니다. systemd는 사용자 로그인 셸에서 사용됩니다./etc/xprofile
X Window 시스템 세션을 시작하는 동안 셸 스크립트가 실행되었습니다.이 작업은 X Window 시스템에 로그인하는 모든 사용자에 대해 실행됩니다.그것은 에 좋은 선택입니다.PATH
모 사 유 효 한 항 목 게 같 에와 같이 모든/usr/local/something/bin
이 파일은 다른 스크립트에 포함되어 있으므로 사용자 셸의 구문이 아닌 POSIX 셸 구문을 사용합니다./etc/profile
그리고./etc/profile.d/*
트립스크셸. 은 셸 합니다.이것은 셸 전용 시스템에 적합한 선택입니다.이러한 파일은 로그인 모드에서 셸로만 읽힙니다./etc/<shell>.<shell>rc
셸스트립크▁. 은 싱글 쉘것이기 에 좋지 입니다.이것은 단일 셸에 특화되어 있기 때문에 좋지 않은 선택입니다.비로그인 모드에서 사용됩니다.
사용자 세션
~/.pam_environment
고유한 할당 목록이며 참조가 허용되지 않습니다.모든 사용자 세션 시작 시 PAM에 의해 로드되며 X Window 시스템 세션 또는 셸과 관련이 없습니다.다음과 같은 다른 변수를 참조할 수 없습니다.HOME
또는PATH
사용이 제한되어 있습니다.PAM에서 사용합니다.~/.xprofile
X할 때 됩니다.사용자가 X Window 시스템에 로그인할 때 실행됩니다.여기서 정의된 변수는 모든 X 응용 프로그램에서 볼 수 있습니다.을PATH
등의가 ▁as와 합니다.~/bin
또는~/go/bin
지정 합니정의다를자용특▁user다▁specific▁defining▁or니합.GOPATH
또는NPM_HOME
이 파일은 다른 스크립트에 포함되어 있으므로 사용자 셸의 구문이 아닌 POSIX 셸 구문을 사용합니다.바로 가기로 시작한 그래픽 텍스트 편집기 또는 IDE에서 이러한 값을 볼 수 있습니다.~/.profile
,~/.<shell>_profile
,~/.<shell>_login
에뮬레이터에서 됩니다.터미널 또는 터미널 에뮬레이터에서 시작된 프로그램에만 표시됩니다.셸 전용 시스템에 적합합니다.로그인 모드에서 셸에서 사용됩니다.~/.<shell>rc
셸스트립크▁. 은 싱글 쉘것이기 에 좋지 입니다.이것은 단일 셸에 특화되어 있기 때문에 좋지 않은 선택입니다.비로그인 모드에서 셸에서 사용됩니다.
메모들
웨이랜드의 GNOME은 사용자 로그인 셸을 시작하여 환경을 가져옵니다.로그인 셸 구성을 효과적으로 사용합니다.~/.profile
,~/.<shell>_profile
,~/.<shell>_login
files 파일
맨 페이지
배포 관련 설명서
관련된
Ubuntu 편집/etc/environment
유일한 목적은 환경 변수를 저장하는 것입니다.원래 $PATH 변수는 여기서 정의됩니다.
이것은 제가 만든 페이스트입니다./etc/environment
파일 이름:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
따라서 이 파일을 루트로 열고 원하는 것을 추가할 수 있습니다.
즉각적인 결과를 위해,
실행(일반 사용자 및 루트로 시도):
source /etc/environment && export PATH
을 사용하는 경우 (Z 경쉘는우하사용을▁()zsh
, , 의이합니다./etc/zsh/zshenv
파일 이름:
source /etc/environment
나는 Ubuntu 15.10(Wily Werewolf)에서 이 작은 기괴함을 만났지만, 만약 당신의 zsh가 정확한 PATH를 얻지 못한다면, 이것이 이유일 수 있습니다.
Bash의 경우 다음과 같이 입력할 수 있습니다.export
의선으로 된 ~/.bashrc
예를 들어 my .bashrc에는 다음 행이 포함되어 있습니다.
export PATH=/var/lib/gems/1.8/bin:/home/ash/.bin:$PATH
설정할 수 있습니다.$PATH
두 가지 방법으로 영구히
특정 사용자의 경로를 설정하는 방법
은 파일에 해야 할 .
.bash_profile
사용자의 홈 디렉토리에 있습니다.예를 들어, 내 경우에는 다음을 설정합니다.
java
Tomcat 사용자 프로필의 경로*echo "export PATH=$PATH:/path/to/dir" >> /home/tomcat/.bash_profile
모든 시스템 사용자에게 공통 경로를 설정하려면 다음과 같이 경로를 설정해야 할 수 있습니다.
echo "export PATH=$PATH:/path/to/dir" >> /etc/profile
센트에서 사용할 수 있습니다.로컬 사용자를 위한 OS 또는 RHEL(Red Hat Linux):
echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile
이렇게 하면 현재 디렉토리(또는 다른 디렉토리를 사용할 수 있음)가 PATH에 추가됩니다.이렇게 하면 영구적이지만 다음 사용자 로그온 시 적용됩니다.
다시 로그온하지 않으려면 다음을 사용할 수 있습니다.
source ~/.bash_profile
그러면 다시 로드됩니다.# User specific environment and startup programs
은 파일 " 의은있습다니파에일이"에 있습니다..bash_profile
.
다음 파일 중 하나를 편집하여 영구적으로 설정할 수도 있습니다.
/etc/profile
사용자 이름)
~/.bash_profile
사용자의 사용자 이름)
~/.bash_login
사용자의 사용자 이름)
~/.profile
사용자의 사용자 이름)
사용할 수도 있습니다./etc/environment
영구 PATH 환경 변수를 설정하지만 변수 확장을 지원하지 않습니다.
추출 대상: Linux: Anadir routaal PATH
가장 우아한 방법은 다음과 같습니다.
~/.bashrc 파일에 추가합니다.
다음 명령을 실행합니다.
gedit ~/.bashrc
경로를 추가합니다.
export PATH=$PATH:/opt/node/bin
source ~/.bashrc
(우분투)
/etc/profile 파일을 수정합니다.
vi /etc/profile
키를 눌러 편집 모드로 들어가고 커서를 파일 끝으로 이동합니다.추가 항목:
export PATH=$PATH:/path/to/dir;
키를 눌러 편집 모드를 종료하고 파일을 저장합니다.
구성을 효율적으로 설정
source /etc/profile
설명:
프로파일 파일은 모든 사용자에게 적용됩니다.활성 사용자에게만 유효하도록 하려면 ".bashrc" 파일을 변경합니다.
내이했습니다. - 만의 스크립트를 PATH에 추가하는 방법을 .~/.profile
파일(Linux Mint 18.1)에는 이미 다음이 포함되어 있습니다.
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
따라서, 제가 해야 할 일은 폴더를 만드는 것이었습니다.~/bin
그리고 내 대본을 거기에 두었습니다.
이 행을 콘솔 구성 파일(예: .bashrc 또는 .profile)에 추가할 수 있습니다.
많은 연구 끝에, 저는 Flutter – Step by Step Installation on Linux – Ubuntu에서 영감을 받아 간단한 솔루션(기본 OS를 사용하고 있습니다)을 찾았습니다.
다음 명령을 실행하여 편집 모드에서 .bashrc 파일을 엽니다(vi 또는 다른 편집기를 사용할 수도 있습니다).
~$ sudo nano ~/.bashrc
파일 끝에 다음 행을 추가하고 저장합니다.
export PATH="[FLUTTER_SDK_PATH]/flutter/bin:$PATH"
예:
export PATH="/home/rageshl/dev/flutter/bin:$PATH"
이것이 Ubuntu 배포판에서 Float에서 경로를 설정하기 위한 영구적인 해결책이라고 생각합니다.
다음 명령을 사용하여 직접 추가할 수 있습니다.
echo 'export PATH=$PATH:/new/directory' >> ~/.zshrc
source ~/.zshrc
영구적인 경로를 추가하는 한 가지 방법은 다음과 같습니다.
cd /etc/profile.d
touch custom.sh
vi custom.sh
export PATH=$PATH:/path according to your setting/
컴퓨터를 다시 시작하면 경로가 영구적으로 표시됩니다.
파일 [name_of_script].sh
에▁/etc/profile.d
다음 행이 있는 폴더:
export PATH=$PATH:/dir
내의 /etc/profile.d
으로 실행됩니다./etc/profile
로그인 시에
제 답변은 Ubuntu Linux(amd64)에서 바둑 환경을 설정하는 것과 관련된 것입니다.저는 환경 변수의 경로를 설정하는 것과 같은 어려움에 직면했습니다.GOPATH
그리고.GOBIN
), 를 source <file_name>
매회
이었습니다.GOPATH
그리고.GOBIN
)에서.~/.bash_profile
파일입니다. 몇 시간을 낭비한 후에, 저는 해결책이 다음과 같은 것이라는 것을 발견했습니다.GOPATH
그리고.GOBIN
에 시대에~/.bash_rc
다음과 같은 방식으로 파일:
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOPATH:$GOBIN
그리고 그렇게 함으로써 Go 설치는 잘 작동했고 경로 손실은 없었습니다.
이 문제가 관련될 수 있는 이유는 Go 코드를 실행하는 Ubuntu 터미널이나 GNOME 터미널과 같은 비로그인 셸에 대한 설정이~./bash_rc
및 은 파일및로셸대가설다니에서 가져옵니다.~/.bash_profile
file. 일. 그리. ▁the.~/.profile
다음의 경우 파일~/.bash_profile
파일에 연결할 수 없습니다.
내보내기 명령을 추가하는 파일은 로그인 모드인지 비로그인 모드인지에 따라 달라집니다.
로그인 모드인 경우 찾고 있는 파일은 /etc/bash 또는 /etc/bash.bashrc입니다.
로그인 모드가 아닌 경우 /.profile 또는 /.profile.d 디렉토리 내의 파일을 찾습니다.
위에 언급된 파일은 시스템 변수가 있는 위치입니다.
PATH 변수에 영구적으로 추가
전역:
echo "export PATH=$PATH:/new/path/variable" >> /etc/profile
로컬(현재 사용자만 해당):
echo "export PATH=$PATH:/new/path/variable" >> ~/.profile
글로벌의 경우 다시 시작합니다.로컬의 경우 다시 로그인합니다.
예
이전:
$ cat /etc/profile
#!/bin/sh
export PATH=/usr/bin:/usr/sbin:/bin:/sbin
이후:
$ cat /etc/profile
#!/bin/sh
export PATH=/usr/bin:/usr/sbin:/bin:/sbin
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable
또는 파일 "profile"을 편집할 수 있습니다.
$ cat /etc/profile
#!/bin/sh
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable
다른 방법(고마워 gniourf_gniourf):
echo 'PATH=$PATH:/new/path/variable' >> /etc/profile
여기서 큰따옴표를 사용하면 안 됩니다! 에코 'export PATH=$PATH:/new/path/variable'...참고로 PATH 변수는 이미 내보낸 것으로 표시되어 있기 때문에 내보내기 키워드는 유용하지 않을 가능성이 높습니다.gniourf_gniourf
제77호는 옳은 생각을 가지고 있습니다.OP는 "어떻게 내가 이것을 뚫고 나갈 수 있을까?"라고 말하지 않았습니다.OP는 $PATH에 영구적으로 추가하는 방법을 알고 싶었습니다.
sudo nano /etc/profile
이는 모든 항목에 대해 설정된 위치이며 $PATH가 필요한 모든 항목에 대해 변경할 수 있는 최적의 위치입니다.
MacOS를 실행하고 있다고 가정해 보겠습니다.신뢰할 수 있는 이진 파일이 있고 시스템 전체에서 사용할 수 있도록 만들지만 이진 파일이 PATH에 추가될 디렉터리는 필요하지 않습니다.
다음으로 바이너리를 복사/이동하도록 선택할 수 있습니다./usr/local/bin
이미 당신의 경로에 있어야 합니다.이렇게 하면 터미널에서 이미 액세스할 수 있는 다른 바이너리와 마찬가지로 바이너리를 실행할 수 있습니다.
가장 간단한 방법은 다음과 같습니다.
PATH="<directory you want to include>:$PATH"
홈 디렉토리의 .vmsrc 파일에 있습니다.
단말기를 닫거나 PC를 재부팅해도 리셋되지 않습니다.영구적입니다.
이것은 원라이너입니다.라인을 추가합니다..bashrc
이 행은 디렉터리가 경로에 이미 추가되었는지 확인하고, 추가되지 않은 경우 추가합니다. 소스를 만들 때마다 경로에 디렉터리가 중복되지 않습니다..bashrc
.
echo "[[ \":\$PATH:\" != *\":$(pwd)/path/to/add:\"* ]] && export PATH=\"\${PATH:+\${PATH}}:$(pwd)/path/to/add\"" >> ~/.bashrc
source ~/.bashrc
가장 우아한 방법은 다음과 같습니다.
~//bashrc 파일에 추가합니다.
if [ -d "new-path" ]; then PATH=$PATH:new-path fi
source *~/.bashrc*
(우분투)
데비안 분포의 경우 다음 작업을 수행해야 합니다.
~/.bashrc
예:vim ~/.bashrc
- 더하다
export PATH=$PATH:/path/to/dir
- 컴퓨터를 다시 시작합니다.에는 주의하시기 바랍니다.
~/.bashrc
루트로, 추가한 환경 변수는 루트로만 작동합니다.
언급URL : https://stackoverflow.com/questions/14637979/how-to-permanently-set-path-on-linux-unix
'UFO ET IT' 카테고리의 다른 글
Git 저장소 내에서 기존 Git 하위 모듈을 이동하려면 어떻게 해야 합니까? (0) | 2023.05.13 |
---|---|
Visual Studio VB에서 영역 축소를 비활성화하거나 모든 영역을 확장하는 방법.NET? (0) | 2023.05.13 |
스위프트 4의 #selector()로 @objc 추론 삭제를 처리하려면 어떻게 해야 합니까? (0) | 2023.05.13 |
시스템 정렬 방법.컬렉션.포괄적인.VB에 나열합니다.그물? (0) | 2023.05.13 |
HashSet과 List의 차이점은 무엇입니까? (0) | 2023.05.13 |