2009-07-14 4 views
5

WinXP에서 직접 설치 한 것보다는 Cygwin에서 설치 한 Python을 사용하고 싶었으므로 ~/.bashrc를 편집하여 소스했습니다. 아무것도 바뀌지 않았다. 나는 다른 것을 시도했지만, 어떤 방법으로도 $ PATH를 변경하지 않았습니다. 그래서 재부팅했다. 아하; 이제 $ PATH가 내가 원하는 것으로 변경되었습니다.

하지만 아무도 이런 일이 일어난 이유를 설명 할 수 있습니까? cygwin (및 bash)을 통해 만들어진 환경 (및 그 변수)에 대한 변경은 재부팅 후에 만 ​​효력이 발생합니까?

(이 방법으로 철도를 운영 할 수 있습니까?) (이 질문은 어떤 점도 얻지는 못하지만, 궁금해서이 시점에서 도움이되지 않는 문서를 넘어가는 것에 지쳐있었습니다.)

+0

$ PATH를 변경하기 위해 사용한 정확한 명령은 무엇입니까? –

+0

여러 가지 방법을 시도했습니다. 편집 ~/.bashrc에 : 대신에/cygdrive/C/파이썬은/etc/등 PATH = $ {PYTHON}의 파이썬은 =는/usr/빈/python.exe를 $ {PATH} 다음 % 소스 ./ bashrc 그것이 작동하지 않을 때 cmdline에서 $ {PAth}을 (를 수정하여 다시 시도해 보았습니다. 아무 효과도 없었습니다. – behindthefall

답변

0

경로 변수를 수정 한 후 배쉬의 해시를 다시 초기화 당신은해야 할 수 있습니다 :

hash -r 
+0

배쉬의 해시? 흠. 일요일에 'rehash'의 추억 3. IIRC. 하지만 '소스 .bashrc'가 그 일을 처리했다고 생각 했지, 안 그래? – behindthefall

+1

rehash는 tcsh입니다. hash -r은 bash를위한 것입니다. –

3

시도 :

PATH="${PATH}:${PYTHON}"; export PATH 

또는 :

export PATH="${PATH}:${PYTHON}" 

따옴표는 공간과 당신이 이 디렉토리 이름에이없는 줄 바꿈을 보존 할 수 있습니다. "do not"을 반복합니다.

현재 환경 및 이후 프로세스의 경로를 변경하려면 위의 명령 중 하나와 유사한 명령을 사용하십시오. 그들은 동등하다.

다음에 배쉬를 시작할 때 경로를 변경하려면 ~/.bashrc을 편집하고 위 중 하나를 추가하거나 기존 PATH 설정 명령을 편집하십시오.

현재 환경과 그 이후의 환경에 모두 영향을 주려면 (즉각적인 영향과 영구적 인 영향이있는 경우) ~/.bashrc을 편집하고 다음 중 하나를 수행하십시오. 위에 표시된 처음 두 형식 중 하나를 입력하거나~/.bashrc 파일을 제공합니다. 때로는 예를 들어, ~/.bashrc과 다르게 설정된 다른 변수를 사용하도록 설정하는 것과 같이 일시적인 것을 취소하는 경우 소싱을 수행하지 않을 수도 있습니다.

해시를 심각하게 재 배열하거나 일부 시스템 대체 유틸리티를 추가하지 않는 한 해시에 대해 걱정할 필요가 없다고 생각합니다.

+0

더 많은 증거가 필요하다면, 얼마나 쉽게 병이 들었는지 알 수 있습니다. 나는 무엇을해야합니까? 원본, 해시 및 순서대로 항상 내보내기? – behindthefall

+0

나를 잃어 버렸습니다. 나는 거기에없는 공백을 보존 할 것인가? 아니면 "NIX 명명 규칙을 고수하십시오"라고 말하고 있습니까? (나는 늘 그렇듯이 파일 시스템 이름에 공백이 생기고 하이픈을 좋아하지 않는다.) – behindthefall

+0

cygwin 시스템에서 현재 쉘 세션에서 $ PATH를 수정하려면 다음과 같은 두 번째 형식을 수행해야했다. 명령. 'export PATH = "$ PATH} : {$ PYTHON}"을 .bashrc에 추가하면 로그인 할 때마다 작동합니다. –

2

변경 사항이 영구적으로 할 경우 (이 경우 .bashrc에) 적절한 파일을 수정하고 다음 작업 중 하나를 수행해야합니다

  • 다시 시작 Cygwin에서 창
  • 소스의 .bashrc를 (작동하지 않아도 작동합니다.)
  • . .bashrc와 그러나

(즉 도트 < 공간 > > < 이름이다).bashrc는 BASH 셸을 사용할 때 기본적으로 사용되므로 다른 셸 (csh, ksh, zsh 등)을 사용하는 경우 .bashrc를 수정하면 변경 내용이 반영되지 않습니다.

+1

위의 ".bashrc"는 "source .bashrc"에 대한 bash 단축형입니다. –

1

시도하고 적어도 배제 할 몇 가지 다음 셸에서 다음과 같은

  1. 이 같은 행동을받을 수 있나요? (예상대로 작동 내 Cygwin에서에서 붙여.) 위의 유사한 방법으로 PATH를 설정하여 bashrc에이

     
    $ echo $PATH 
    /usr/local/bin:/usr/bin:/bin 
    
    $ export PATH=$PATH:/cygdrive/c/python/bin 
    
    $ echo $PATH 
    /usr/local/bin:/usr/bin:/bin:/cygdrive/c/python/bin 
    
  2. 인가? (즉, 제 2 커맨드).

  3. bashrc에 "소스"또는 "."이 포함되어 있습니까? 어디에서나 명령? (어쩌면 PATH 변수를 덮어 쓰는 다른 파일을 소싱하고있을 수도 있습니다.)

+0

안녕하세요, ars. 나는 밤에 끝내지 만, 내일 다시 시도 할 것이다. 감사. – behindthefall

관련 문제