bash PATH는 어디에 설정 했습니까?


9

~/binPATH에서 제거 하고 싶습니다. 몇 달 전에 리눅스 (우분투)가 처음 생겼을 때 그것을 설정했지만 어떻게 추가했는지 모르겠습니다 ...

아래 나열된 모든 파일을 검색해도 아무것도 표시되지 않습니다.
다른 곳을 설정할 수 있습니까? $HOME/.profile접두사 PATH 뒤에 붙 습니다.$HOME/bin

차이가 있으면 명령 프롬프트와 실행중인 스크립트 모두에서 동일한 PATH를 얻습니다.

#!/bin/bash
{
  echo "first dir of PATH is: '${PATH%%:*}'"
  shopt -s nullglob
  cat \
    /etc/profile \
    /etc/bash.bashrc \
    /etc/profile.d/*.sh \
    $HOME/.bashrc \
    $HOME/.bash_aliases \
    /etc/bash_completion \
    $HOME/.bash_completion* \
    $HOME/.profile \
    $HOME/.profile_zap \
    $HOME/.bash_profile* \
    $HOME/.bash_login* \
  | sed -rne '/~\/bin/p'
}

출력은 다음과 같습니다

first dir of PATH is: '~/bin'

PATH대신 잡으십시오 . 여전히 운이 없으면 모든 파일에서 소스가 있는지 확인하십시오.
jw013

~ / .bashrc 및 ~ / .profile을 확인 했습니까? / etc / profile을 보지 않으면 나는 당신이이 장소들 중 하나에서 그것을 찾을 것이라고 생각합니다.
nikhil

감사합니다 모든 사람 ... 모든 제안 도움이되었습니다 ...이 있었다 ~/.gnomerc...
Peter.O

답변:


10

로그인시 전체 환경로드를 추적 할 수 있습니다. 그냥 생각이야

/ etc / profile은 소스 파일 중 첫 번째 파일이므로 맨 위에 a를 추가 할 수 있습니다.

set -x
exec 2> /tmp/debug.log

그런 다음 터미널을 열고 bash -l; 그 후 원래 터미널로 가서 추가 된 줄을 제거하십시오 (작업 환경을 원하십니까?).

/tmp/debug.log에서 loading_the_bash_environment의 모든 단계를 모두 추적해야합니다. loooong 파일이됩니다.

그것으로 당신은 "~ / bin"이 당신의 PATH에 들어가는 곳을 찾을 수 있어야합니다

먼저 모든 파일의 소스를 찾으십시오. 귀하의 게시물에서 경로의 ~ / bin이 나열된 파일과 다른 파일에 설정되어 있습니다.


@hmontoliu .. 내가 .. 먼저, 아무것도 로그에 갈되지 않습니다이 문제가 두 번 있었지만 한 나는 (터미널에서 출력을 많이 얻고 konsole로 ...) 첫 번째 참조를 ~/bin에 이미 쇼 경로, 그러나 그것이 어디에서 왔는지에 대한 힌트를 볼 수는 없습니다.이 시점에서 이미 $HOME/binfrom 다음에 있습니다 $HOME/.profile(이 테스트를 위해 특별한 추가 디렉토리를 사용했기 때문에 거기에서 왔을 것입니다). ... 그러나 모든 텍스트 파일을 검색하여 경험적으로 찾을 수있었습니다.이 파일은 ..에서 가져 오며 ~/.gnomerc다시 로그인해야 변경됩니다. ?? !! ..
Peter.O

/ etc / profile 위에 행을 붙여 넣었고 일반 행으로 실행하고 bash -l있습니까? stderr로 이동하는 디버깅 (-x)을 /tmp/debug.log로 보내야합니다. 실제로 나는 이것을 테스트하고 예상 한대로 작동합니다
hmontoliu

다시 시도하겠습니다 (다시) ...이 로그 분석은 확실히 갈 입니다 (다른 모든 것이 실패 할 때 :). 이것은 더 잘 이해할 수있는 좋은 기회입니다 ...
Peter.O

... 지금은이 로그 문제를 너무 어려운 바구니에 넣어야합니다. 여전히 로그 파일로 출력되지는 않지만 터미널에 수백 줄이 있습니다.하지만 괜찮습니다. 디버그 로그에 대한 좋은 소개. 그리고 나는 확실히 설정 파일에 대해 훨씬 더 나은 느낌을 얻었습니다 ... 고마워요 ...
Peter.O

3
나는 대체했다 setexec다음은 :) 나를 위해 완벽하게 작동, 두 번째 줄에
thomasa88
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.