답변:
여러 가지 방법이 있습니다. 실제 솔루션은 목적에 따라 다릅니다.
변수 값은 일반적으로 시스템 또는 사용자 세션 시작시 실행되는 지정 목록 또는 쉘 스크립트에 저장됩니다. 쉘 스크립트의 경우 특정 쉘 구문 및 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, NodeJS) 당 하나씩 여러 파일로 분할 될 수 있습니다. 의도적으로 해당 값을 사용자 로그인 쉘에 전달하지 않는 SystemD에서 사용합니다./etc/xprofile
X Window System 세션을 시작하는 동안 셸 스크립트가 실행되었습니다. 이것은 X Window System에 로그인하는 모든 사용자에 대해 실행됩니다. 그것은을위한 좋은 선택입니다 PATH
같은 모든 사용자에 대해 유효한 항목 /usr/local/something/bin
. 파일은 다른 스크립트에 포함되므로 사용자 쉘의 구문이 아닌 POSIX 쉘 구문을 사용하십시오./etc/profile
와 /etc/profile.d/*
쉘 스크립트. 쉘 전용 시스템에 적합합니다. 해당 파일은 로그인 모드의 쉘에서만 읽습니다./etc/<shell>.<shell>rc
. 쉘 스크립트. 단일 쉘 전용이기 때문에 이것은 좋지 않은 선택입니다. 비 로그인 모드에서 사용됩니다.~/.pam_environment
. 고유 한 과제 목록, 참조는 허용되지 않습니다. 모든 사용자 세션이 시작될 때 PAM에 의해로드됩니다 (X Window System 세션 또는 쉘인 경우). 당신은 다른 변수를 포함하여 참조 할 수 없습니다 HOME
또는 PATH
이 제한된 사용을 갖도록. PAM에서 사용합니다.~/.xprofile
쉘 스크립트. 이것은 사용자가 X Window System 시스템에 로그인 할 때 실행됩니다. 여기에 정의 된 변수는 모든 X 응용 프로그램에서 볼 수 있습니다. 사용자 별 또는 PATH
과 같은 값으로 정의 ~/bin
하거나 를 확장하기위한 완벽한 선택입니다 . 파일은 다른 스크립트에 포함되므로 사용자 쉘의 구문이 아닌 POSIX 쉘 구문을 사용하십시오. 바로 가기로 시작된 그래픽 텍스트 편집기 또는 IDE에 해당 값이 표시됩니다.~/go/bin
GOPATH
NPM_HOME
~/.profile
, ~/.<shell>_profile
, ~/.<shell>_login
쉘 스크립트. 터미널 또는 터미널 에뮬레이터에서 시작된 프로그램에만 표시됩니다. 쉘 전용 시스템에 적합합니다. 로그인 모드에서 쉘에 의해 사용됩니다.~/.<shell>rc
. 쉘 스크립트. 단일 쉘 전용이기 때문에 이것은 좋지 않은 선택입니다. 비 로그인 모드의 쉘에서 사용합니다.Wayland의 Gnome은 환경을 얻기 위해 사용자 로그인 쉘을 시작합니다. 그것은 효과적으로 로그인 쉘 구성을 사용 ~/.profile
, ~/.<shell>_profile
, ~/.<shell>_login
파일을.
/etc/environment
. 하지만 로그 아웃하지 않고 새로 고칠 수 있습니까? 때로는 bash 또는 sh를 사용 source /etc/environment
하지 않으므로 작동하지 않습니다.
파일 ~/.profile
이나 ~/.bashrc
파일 에 추가해야 합니다.
export PATH="$PATH:/path/to/dir"
당신이하고있는 것에 따라 바이너리에 심볼릭 링크를 원할 수도 있습니다.
cd /usr/bin
sudo ln -s /path/to/binary binary-name
이렇게하면 나머지 세션 동안 경로가 자동으로 업데이트되지는 않습니다. 이렇게하려면 다음을 실행해야합니다.
source ~/.profile
or
source ~/.bashrc
$PATH
과 사이에 콜론이 없어야 /usr/bin
합니다. 2) /usr/bin
거기 있어야 합니다. 3) 오히려 사용하지 /usr/local/bin
않습니까?
cd
압축을 푼 다음 압축을 푼 디렉토리로 옮긴 다음 실행 하는 시나리오를 고려 ls
하여 tarball에 악성 프로그램이 있다는 것을 인식 ls
하십시오.
우분투에서 편집하십시오 /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
최신 정보:
zsh
(일명 Z Shell) 을 사용하는 경우 /etc/zsh/zshenv
: 에서 주석 바로 뒤에이 줄을 추가하십시오 .
source /etc/environment
우분투 15.10 에서이 작은 문제가 발생했지만 zsh 가 올바른 PATH를 얻지 못하면 이것이 이유 일 수 있습니다
$PATH
는 /etc/profile
Arch Linux 에도 정의되어 있습니다.
에 export
선언을 넣 습니다 ~/.bashrc
. 내 .bashrc에는 다음이 포함됩니다.
export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
.profile
'에 넣었을 때 작동 했지만 찾을 수 없음.bashrc
source ~/.bashrc
을 다시로드해야 .bashrc
합니다. 그러면 작동합니다
export
경우 키워드는 필요한 PATH
거의 무조건 될 것입니다 - 이미 환경 변수로 플래그가되지 않습니다. 단순히 PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
같은 효과가 있습니다.
$PATH
두 가지 방법으로 영구적으로 설정할 수 있습니다 .
특정 사용자의 경로를 설정하려면 다음을 입력해야합니다. .bash_profile
홈 디렉토리에 .
예를 들어 내 경우에는 Tomcat 사용자 프로필에 Java 경로를 설정합니다.
[tomcat]$ echo "export PATH=$PATH:/path/to/dir" >> /home/tomcat/.bash_profile
모든 시스템 사용자의 공통 경로를 설정하려면 다음과 같이 경로를 설정해야합니다.
[root~]# echo "export PATH=$PATH:/path/to/dir" >> /etc/profile
/etc/profiles
이 s
있습니까? 광산은 없습니다 s
. 오타가 있다고 생각합니다.
로컬 사용자를 위해 Centos 또는 RHEL에서 사용할 수 있습니다.
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 환경 변수를 설정하는 데 사용할 수도 있지만 변수 확장은 지원하지 않습니다 .
http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html 에서 추출
가장 우아한 방법은 다음과 같습니다.
1. ~ / .bashrc 파일에 추가하십시오.이 명령을 실행하십시오.
gedit ~ / .bashrc
그 안에 경로를 추가
내보내기 PATH = $ PATH : / opt / node / bin
2.source ~ / .bashrc
(우분투)
해당 줄을 콘솔 설정 파일 (예 : .bashrc) 또는 .profile에 추가 할 수 있습니다.
/home/(username)
ls -a
를 볼 수 있도록합니다.)
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
또는 프로필을 편집 할 수도 있습니다.
$ 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
큰 따옴표를 사용해서는 안됩니다! echo 'export PATH = $ PATH : / new / path / variable'... 그리고 PATH 변수가 이미 내 보낸 것으로 표시되어 있기 때문에 export 키워드는 쓸모가 없습니다. – gniourf_gniourf
echo 'export PATH=$PATH:/new/path/variable'
... 그런데 export
키워드는 PATH
변수가 이미 내 보낸 것으로 표시되어있어 쓸모가 없습니다 .
/usr/local
사용하여 추가한다고 말하십시오 ~/.bashrc
. 이제 ;를 /opt/bin
사용하여 동일한 변수 에 추가하려는 경우 /etc/bash.bashrc
; $ PATH는 같은 정적 문자열로 변환됩니다. 결과적으로 $ PATH가 추가되는 대신에 대체 됩니다. 이는 다른 파일보다 한 파일을 선호하는 시스템의 문제입니다
많은 연구 끝에 다음 링크 에서 영감을 얻은 간단한 솔루션을 찾았습니다 ( 초등 OS를 사용하고 있습니다 ) .
다음 명령을 실행하여 .bashrc 파일을 편집 모드 로 엽니 다 . [vi 또는 다른 편집기를 사용할 수도 있습니다].
~$ sudo nano ~/.bashrc
파일 끝에 다음 줄을 추가하고 저장하십시오.
export PATH="[FLUTTER_SDK_PATH]/flutter/bin:$PATH"
예를 들어 :
export PATH="/home/rageshl/dev/flutter/bin:$PATH"
우분투 배포판에서 플러터의 경로를 설정하기위한 영구적 인 해결책 이라고 생각합니다.
이것이 도움이되기를 바랍니다.
다음 줄로 /etc/profile.d
폴더 스크립트에 추가하십시오 . 폴더 내의 모든 스크립트 는 로그인시 자동으로 실행됩니다 .[name_of_script].sh
export PATH=$PATH:/dir
/etc/profile.d
/etc/profile
내 대답은 go-lang
on 설정과 관련이 있습니다 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
그렇게하면 설치가 제대로 작동했고 경로 손실이 없었습니다.
편집 1 :이 문제가 관련된 이유는 go 코드를 실행하는 우분투 터미널 또는 그놈 터미널과 같은 비 로그인 쉘 ~./bash_rc
설정 은 파일 에서 가져 오고 로그인 쉘 설정은 ~/.bash_profile
파일에서 가져 오기 때문입니다. 파일에 접근 할 수없는 ~/.profile
경우 ~/.bash_profile
파일 에서 .
다음 명령을 사용하여 직접 추가 할 수 있습니다.
echo 'export PATH=$PATH:/new/directory' >> ~/.zshrc
source ~/.zshrc
bash
되어 있으므로 도움이되지 않습니다.
가장 간단한 방법은 다음과 같습니다
PATH="<directory you want to include>:$PATH"
. 홈 디렉토리의 .bashrc 파일에 있습니다.
터미널을 닫거나 PC를 재부팅해도 재설정되지 않습니다. 영구
나를 위해 일한 영구 경로를 추가하는 한 가지 방법은 다음과 같습니다.
cd /etc/profile.d
touch custom.sh
vi custom.sh
export PATH=$PATH:/path according to your setting/
컴퓨터를 다시 시작하면 여기에 우리는 경로가 영구적으로 응원합니다.
.bash_profile
뿐만 아니라 목록에 추가해야 하는가?