UFO ET IT

Linux/Unix에서 $PATH를 영구적으로 설정하는 방법

ufoet 2023. 5. 13. 20:22
반응형

Linux/Unix에서 $PATH를 영구적으로 설정하는 방법

Linux에서 $PATH에 디렉토리를 추가하여 다른 세션에서도 지속되도록 하려면 어떻게 해야 합니까?

배경

디렉토리를 경로에 추가하여 항상 Linux 경로에 있도록 하려고 합니다.시도해 봤습니다.

export PATH=$PATH:/path/to/dir

그러나 터미널을 종료하고 새 터미널 인스턴스를 시작할 때마다 이 경로가 손실되므로 내보내기 명령을 다시 실행해야 합니다.

영구적으로 설정하려면 어떻게 해야 합니까?

당신은 그것을 당신은 그것을 당신의~/.profile또는~/.bashrcjava. 

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명령을 실행합니다.

시스템 전체

  1. /etc/environment고유한 할당 목록입니다.참조를 허용합니다.다음과 같은 시스템 전체 디렉토리를 추가하는 데 적합합니다./usr/local/something/binPATH 정의 변또는 정의수의정JAVA_HOMEPAM 및 systemd에서 사용됩니다.

  2. /etc/environment.d/*.conf고유한 할당 목록입니다.참조를 허용합니다.다음과 같은 시스템 전체 디렉토리를 추가하는 데 적합합니다./usr/local/something/binPATH 정의 변또는 정의수의정JAVA_HOME구성은 일반적으로 각 도구(Java, Go 및 Node.js)당 하나씩 여러 파일로 분할할 수 있습니다.셸에 합니다. systemd는 사용자 로그인 셸에서 사용됩니다.

  3. /etc/xprofileX Window 시스템 세션을 시작하는 동안 셸 스크립트가 실행되었습니다.이 작업은 X Window 시스템에 로그인하는 모든 사용자에 대해 실행됩니다.그것은 에 좋은 선택입니다.PATH 모 사 유 효 한 항 목 게 같 에와 같이 모든 /usr/local/something/bin이 파일은 다른 스크립트에 포함되어 있으므로 사용자 셸의 구문이 아닌 POSIX 셸 구문을 사용합니다.

  4. /etc/profile그리고./etc/profile.d/*트립스크셸. 은 셸 합니다.이것은 셸 전용 시스템에 적합한 선택입니다.이러한 파일은 로그인 모드에서 셸로만 읽힙니다.

  5. /etc/<shell>.<shell>rc셸스트립크. 은 싱글 쉘것이기 에 좋지 입니다.이것은 단일 셸에 특화되어 있기 때문에 좋지 않은 선택입니다.비로그인 모드에서 사용됩니다.

사용자 세션

  1. ~/.pam_environment고유한 할당 목록이며 참조가 허용되지 않습니다.모든 사용자 세션 시작 시 PAM에 의해 로드되며 X Window 시스템 세션 또는 셸과 관련이 없습니다.다음과 같은 다른 변수를 참조할 수 없습니다.HOME또는PATH사용이 제한되어 있습니다.PAM에서 사용합니다.

  2. ~/.xprofileX할 때 됩니다.사용자가 X Window 시스템에 로그인할 때 실행됩니다.여기서 정의된 변수는 모든 X 응용 프로그램에서 볼 수 있습니다.PATH등의가 ▁as와 합니다.~/bin또는~/go/bin 지정 합니정의다를자용특▁user다▁specific▁defining▁or니합.GOPATH또는NPM_HOME이 파일은 다른 스크립트에 포함되어 있으므로 사용자 셸의 구문이 아닌 POSIX 셸 구문을 사용합니다.바로 가기로 시작한 그래픽 텍스트 편집기 또는 IDE에서 이러한 값을 볼 수 있습니다.

  3. ~/.profile,~/.<shell>_profile,~/.<shell>_login 에뮬레이터에서 됩니다.터미널 또는 터미널 에뮬레이터에서 시작된 프로그램에만 표시됩니다.셸 전용 시스템에 적합합니다.로그인 모드에서 셸에서 사용됩니다.

  4. ~/.<shell>rc셸스트립크. 은 싱글 쉘것이기 에 좋지 입니다.이것은 단일 셸에 특화되어 있기 때문에 좋지 않은 선택입니다.비로그인 모드에서 셸에서 사용됩니다.

메모들

웨이랜드의 GNOME은 사용자 로그인 셸을 시작하여 환경을 가져옵니다.로그인 셸 구성을 효과적으로 사용합니다.~/.profile,~/.<shell>_profile,~/.<shell>_loginfiles 파일

맨 페이지

배포 관련 설명서

로그인 셸과 비로그인 셸의 차이점은 무엇입니까?

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두 가지 방법으로 영구히

  1. 특정 사용자의 경로를 설정하는 방법

    은 파일에 해야 할 ..bash_profile사용자의 홈 디렉토리에 있습니다.

    예를 들어, 내 경우에는 다음을 설정합니다.javaTomcat 사용자 프로필의 경로*

     echo "export PATH=$PATH:/path/to/dir" >> /home/tomcat/.bash_profile
    
  2. 모든 시스템 사용자에게 공통 경로를 설정하려면 다음과 같이 경로를 설정해야 할 수 있습니다.

     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

가장 우아한 방법은 다음과 같습니다.

  1. ~/.bashrc 파일에 추가합니다.

    다음 명령을 실행합니다.

     gedit ~/.bashrc
    

    경로를 추가합니다.

     export PATH=$PATH:/opt/node/bin
    
  2. source ~/.bashrc

(우분투)

  1. /etc/profile 파일을 수정합니다.

    vi /etc/profile
    

    키를 눌러 편집 모드로 들어가고 커서를 파일 끝으로 이동합니다.추가 항목:

    export PATH=$PATH:/path/to/dir;
    

    키를 눌러 편집 모드를 종료하고 파일을 저장합니다.

  2. 구성을 효율적으로 설정

    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_profilefile. 일. 그리. ▁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

가장 우아한 방법은 다음과 같습니다.

  1. ~//bashrc 파일에 추가합니다.

    if [ -d "new-path" ]; then
      PATH=$PATH:new-path
    fi
    
  2. 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

반응형