2014-09-04 10 views
1

동일한 서버에 2 개의 다른 시나리오에서 root로 echo $ PATH를 실행하면 결과가 달라집니다.

먼저 나는 부엌을 설치 한 루트로서 용어로 ssh를 사용합니다. 내가

$ which kitchen 
$ usr/local/rvm/gems/ruby-2.1.2/bin/kitchen 
$ echo $PATH 

를 입력 할 때 나는

/usr/local/rvm/gems/ruby-2.1.2/bin:/usr/local/rvm/gems/[email protected]/bin:/usr/local 
/rvm/rubies/ruby-2.1.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:  
/bin:/usr/games:/usr/local/games:/usr/local/rvm/bin: 
/usr/local/rvm/gems/ruby-2.1.2/bin/kitchen 

내가 SSH 스크립트 (도 지정 루트)를 실행하는 내 assembla 호스트를 사용하고 올바르게 마지막에 등록되어있는 것을 확인하실 수 있습니다 나는

을 실행할 때 우분투 14.04를 사용
$ which kitchen 
$ Process exited with: 1. Reason was: () 
$ echo $PATH 
$ /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: 
    /usr/games:/usr/local/games 

나는 프랑스를 실행할 때 동일한 출력을 얻는 방법을 알고 싶습니다

감사 가능한 경우, 단말기를 통해 로그인 할 때와 옴 assembla 계정

이것은 대부분 대화식 쉘을 갖는 대화식 쉘을 갖지 않는 차이이다

답변

0

.

배쉬는 그것이 실행되고이 때 결정하기 위해 시도합니다

다른 환경 파일이 사용자의 설정에 따라 읽을 수 있습니다, 당신의 .bashrc이나 bash는 남자 페이지에서

의 .profile을 살펴 원격 입력 셸 데몬 (보통 rshd) 또는 보안 쉘 데몬 sshd와 마찬가지로 네트워크 입력에 표준 입력을 연결합니다. bash 이이 방식으로 실행되고 있다고 판단하면 ~/.bashrc에있는 명령 을 읽고 실행합니다 (해당 파일이 존재하고 읽을 수있는 경우).

기본적으로`grep -r kitchen ~ /.* '을 실행하여 PATH 변수에 어떤 파일이 추가되는지 확인한 다음, non-ssh로 ssh를 실행할 때 그 파일이 읽히고 있는지 확인할 수 있습니다.

수출 PATH =/usr/지방/RVM/보석/루비 2.1.2/빈/주방 :. 당신은뿐만 아니라 스크립트를 실행하기 전에 -interactive 터미널

당신은 항상 당신의 경로를 설정할 수 있습니다 $ { PATH}

PS 출력에 PATH 변수에 개행 문자가있는 것 같습니다.

+0

감사합니다. 좋은 방향으로 설정하십시오. 나는 "source/etc/profile"을 스크립트의 시작과 그 실행에 넣었다. – MikeW