.bashrc의 내보내기 PATH 줄은 무엇을합니까?


9

나는 리눅스에 익숙하지 않으며 튜토리얼을 따르는 데 다음과 같은 의심이 있습니다.

bashrc파일 을 수정해야 합니다. 이 파일에는 어떤 종류의 설정이 포함되어 있습니까? bash 셸 환경과 관련이 있다고 생각하지만 확실하지 않습니다.

이 줄을 삽입해야합니다.

export PATH=$HOME/.local/bin:$HOME/.local/usr/bin:$PATH

이 라인은 정확히 무엇입니까?

나는 그 export문장이 다른 프로그램에서 사용할 수 있도록 새로운 변수를 만드는 데 사용 된다고 생각합니다 .

그러나이 라인은 정확히 무엇입니까? 가 PATH내가 정의하고있는 변수의 이름은? 무엇입니까 $HOME?

무엇이 의미 :사이의 기호 PATH=$HOME/.local/bin$HOME/.local/usr/bin$PATH섹션 이전 표현을?

이 표현은 정확히 무엇을 의미합니까?


항목 사이의 :는 각 세그먼트의 구분 기호입니다. 그것 없이는, 당신의 길은 하나의 연속적인 길일 것이고 작동하지 않을 것입니다.
Terrance

우분투에서는 이러한 종류의 PATH수정이 이미 ~/.profile파일 에서 수행되었으므로에서 비슷한 작업을 수행하는 것이 약간 일치하지 않습니다 ~/.bashrc. ~/.profile필요한 경우 이미 코드를 수정하는 더 나은 IMO . 현재 기본 ~/.profile파일이 라인을 포함 :PATH="$HOME/bin:$HOME/.local/bin:$PATH"
군나르 할말 슨

@ GunnarHjalmarsson : .profile과 .bashrc를 다르게 만드는 상황이 있습니다. .profile 파일은 서브 쉘이 아닌 로그인 쉘에 의해 구문 분석됩니다. 그러나 서브 쉘을 시작하려면 어쨌든 로그인해야하므로 서브 쉘이 $ PATH를 상속하므로 이는 정상입니다. .bashrc 파일은 로그인 쉘에 의해 구문 분석되지 않지만 서브 쉘에 의해 구문 분석됩니다. 당신이 (자식 후크를 저지 같은 다른 스크립트를 호출 어쩌면 몇 가지 멋진 자동화 스크립트) 로그인 쉘의 자녀없는 물건이있을 때의 차이가 온다 - 그들은 무시됩니다 있도록 .profile에 아무것도 읽을 수 없습니다
slebetman

@slebetman : 오른쪽, 그리고 데스크탑의 경우에 당신이 언급하지 않는 또 다른 차이가 있습니다 : 달리 ~/.bashrc, ~/.profile설정 때문에 유일한 변수는 디스플레이 관리자에 의해 공급되어 ~/.profile사용자가 그래픽 환경에서 프로그램을 시작할 때 사용할 수 있습니다. 그리고 그것은 일찍 발생하므로 세션에 대한 자동 시작 프로세스에 적합합니다.
Gunnar Hjalmarsson '10

답변:


16

이 질문에 언급 된 모든 것을 요약하면

export부분

export당신이 자식 프로세스가 액세스 할 수 후에 선언하는 변수에 해당하는 줄을 의미합니다. 다시 말해 프로세스는 export쉘 환경을 통해 키워드 뒤에 선언 된 변수에 액세스 할 수 있습니다. 따라서 export FOO="BAR"쉘 환경에서 변경 사항을 $FOO가져 와서 소스 지정하면 입력 하고 얻을 수 BAR있습니다.

PATH부분

경로 줄은 당신이 말한대로입니다 : 그것은 PATH쉘 환경을 위해 명명 된 변수를 선언 합니다. bash 환경 PATH에서 컴퓨터가 프로그램을 찾는 위치를 정의하는 특별한 목적이 있습니다. 전체 디렉토리를 입력하지 않고도 스크립트에 대한 사용자 정의 명령을 입력 할 수 있습니다. PATH는 기본적으로 내보내기로 표시되므로이 줄을 다시 쓰지 않아도됩니다. 그래도 아프지 않습니다.

$HOMEPATH변수

PATH변수에 지정된 경로의 시작 부분에 $HOME선언됩니다. 이것은 컴퓨터가 HOME읽은 값을 저장 하고 나머지 줄 앞에 복사하여 붙여 넣는 것을 의미합니다.

:두 경로 사이에서

:문장에서 쉼표에 해당합니다. 단지 세 디렉토리 만 분리합니다. 이 세 디렉토리가 없으면 콘솔은 수신 한 명령을 인식하지 못합니다. 이 세 위치는 스크립트 / 명령 파일을 저장하는 데 가장 일반적으로 사용되는 세 개의 디렉토리이므로 파일의 전체 경로를 작성하지 않고도 터미널에서 액세스 할 수 있어야합니다.


좋은 답변입니다! "내보내기 라인은 자식 프로세스가 액세스 할 수있게 된 후에 선언 한 변수를 의미합니다"는 명령을 실행할 터미널의 이러한 자식 프로세스에 대한 부모입니까?
vadasambar

5

PATH변수는 스크립트 또는 다른 실행 파일이 그렇다면, 어디에서 실행 프로그램을 찾아하는 방법을 알고 비난 할 수 있습니다 $HOME/.local/bin수정, PATH당신이 입력하고 당신이 할 수처럼 해당 파일을 실행하게됩니다 ls또는 df.

exportPATHbash에서 실행하는 다른 프로그램에서도 해당 변수를 사용할 수 있다는 의미 입니다.

에 관해서는 : 각 디렉토리의 구분자 일뿐입니다. 단어 목록의 쉼표와 동일합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.