[linux] ZSH의 PATH 변수에 새 항목 추가

zsh를 사용 /home/david/pear/bin하고 있으며 PATH변수에 새 항목 ( )을 추가하려고 하지만 방법을 모르겠습니다.

나를 가장 혼란스럽게하는 것은 PATH~/.zshrc파일에 변수에 대한 단일 참조가 없지만 echo $PATH반환을 수행한다는 것입니다 .

/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

그래서 PATH변수가 어딘가에 설정되고 있습니다.



답변

여기 에이 줄을 추가하십시오 .zshrc:

export PATH=/home/david/pear/bin:$PATH

편집 : 이것은 작동하지만 ZSH 가와 같은 변수를 제공하는 구조적 인터페이스를 활용하기 때문에 아래 의 ony의 대답 이 더 좋습니다 $PATH. 이 접근법은 표준 bash이지만, 아는 한 ZSH가 더 나은 대안을 제공 할 때 사용할 이유가 없습니다.


답변

실제로 ZSH를 사용하면 환경 변수의 특수 매핑을 사용할 수 있습니다. 그래서 당신은 간단하게 할 수 있습니다 :

# append
path+=('/home/david/pear/bin')
# or prepend
path=('/home/david/pear/bin' $path)
# export to sub-processes (make it inherited by child processes)
export PATH

저에게는 다른 변수로 전파 될 수있는 매우 깔끔한 기능입니다. 예:

typeset -T LD_LIBRARY_PATH ld_library_path :


답변

PATH최소한의 방식으로 추가 할 수 있습니다 . 요소를 두 개 이상 추가하지 않으면 괄호가 필요하지 않습니다. 또한 일반적으로 따옴표가 필요하지 않습니다. 따라서 간단하고 짧은 추가 방법 은 다음과 같습니다.

path+=/some/new/bin/dir

일반적인 사용법

그런 다음 새 스크립트 / 실행 파일을 테스트하기위한 공통 패턴은 다음과 같습니다.

path+=$PWD/.
# or
path+=$PWD/bin

이 소문자 구문은 배열path 로 사용 되지만 대문자 파트너에 영향을 미칩니다 (이를 통해 “바운드” ).PATHtypeset

( 세퍼레이터로 필요하거나 원하지 않음에 유의하십시오: .)

관련 음식

path이 방법을 (배열로) 처리 하면 새로 경로 지정된 명령을 찾기 위해 수행 할 필요가 없습니다
rehash
.

또한 vared path동적으로 편집path
하고 다른 것들을 살펴보십시오 .

path이 질문 에만 관심이있을 수 있지만 내보내기 및 배열에 대해 이야기하고 있으므로
일반적으로 배열을 내보낼 수 없습니다.

중복 된 항목을 가져 가지 못하게PATH 할 수도 있습니다
( this
this 참조
).

typeset -U path


답변

~/.zshrc파일 을 열지 않고 하나의 라이너

echo -n 'export PATH=~/bin:$PATH' >> ~/.zshrc

또는

echo -n 'export PATH=$HOME/bin:$PATH' >> ~/.zshrc

효과를 보려면 source ~/.zshrc동일한 탭에서 수행하거나 새 탭을여십시오.


답변

  1. ~ / .zshrc에 경로 추가

    sudo vi ~/.zshrc

    새로운 길 추가

    export PATH="$PATH:[NEW_DIRECTORY]/bin"
  2. ~ / .zshrc 업데이트

    ~ / .zshrc 저장

    source ~/.zshrc

  3. PATH 확인

    echo $PATH


답변

옵션 1 : ~ / .zshrc에 다음 행을 추가하십시오.

export "PATH=$HOME/pear/bin:$PATH"

그런 source ~/.zshrc다음 변경 사항을 적용하거나이 창을 닫고 새 창을 열려면 실행해야합니다.

옵션 2 : 터미널 콘솔 내에서 실행하여이 경로를 현재 터미널 창 세션에만 추가하십시오. 창 / 세션을 닫으면 손실됩니다.


답변