iTerm + Mac OS X에서 .bashrc가 제공되지 않음


62

Mac OS X 10.6에서 iTerm을 사용하고 있습니다. iTerm을 열 때도 소스 도 .bashrc아닙니다 .bash_profile. 에 정의 된 별칭 .bashrc이 설정되어 있지 않기 때문에 알 수 있습니다 . 어떻게 고치는 지?


2
일어나고있는 일은 ~/.bash_profilebash가 먼저 호출하는 것입니다 ~/.bashrc. ~/.bash_profile이전에 파일이 존재하지 않았을 때 악성 프로그램이 일부 명령을 추가하고 모든 bash 명령을에 배치 한 경우이 문제가 예기치 않게 발생할 수 있습니다 ~/.bashrc. 해결책은 ~ / .bash_profile을 삭제하거나 ~ / .bash_profile이 ~ / .bashrc 소스를 갖도록하는 것입니다. 이것은 source ~/.bashrc끝에 명령을 추가 ~/.bash_profile하고 터미널을 다시 시작하여 수행 할 수 있습니다 .
Eric Leschinski

답변:


53

Bash는 호출 방법에 따라 EITHER .bash_profile 또는 .bashrc를 제공합니다. 로그인 셸인 경우 Bash는 ~ / .bash_profile, ~ / .bash_login 또는 ~ / .profile을 순서대로 찾은 다음 찾은 첫 번째 항목 (및 그 중 하나만)을 제공합니다. 로그인 쉘이 아니지만 대화식 (대부분의 터미널 세션과 같은) 인 경우 Bash는 ~ / .bashrc를 제공합니다.

아마도 iTerm은 ~ / .bashrc를 찾고 있습니다. 로그인 쉘로 시작하도록 구성된 경우 ~ / .bash_profile을 찾습니다. 쉘이 소싱하지 않는 것이 아니라 구성 파일 내에서 오류가 거의 확실합니다.

각 파일의 시작 부분에 줄을 넣을 것입니다. ~ / .bash_profile의 상단에 :

export BASH_CONF="bash_profile"

~ / .bashrc의 맨 위에 :

export BASH_CONF="bashrc"

그런 다음 새 iTerm을 열고 다음을 입력하십시오.

$ echo $BASH_CONF

파일이 소스임을 확인하고 파일 구문을 조사 할 수 있습니다.


2
각 소스 파일에 대해 다른 환경 변수를 설정하면 더 많은 정보를 얻을 수 있습니다. 즉, 둘 이상의 파일이 소스 된 경우 마지막 파일 (주문이 아닌 경우)에
대해서만 알 수

여전히 .bashrc 파일을로드하지 않습니다. iTerm 및 Terminal Preferences에 source ~ / .bashrc를 추가해야했습니다. btw Mac OS X 10.9.5를 사용하고 있습니다.
자이언트 엘크

방금 .profile 파일을 추가했으며 터미널 환경 설정을 엉망으로 만들지 않고 OS X 10.9.5에서 자동으로 작동합니다.
자이언트 엘크

1
환경 설정-> 프로파일-> 일반으로 이동하여 로그인 쉘이라는 것을 알았습니다. 명령에서 로그인 쉘이 선택되었습니다. MacOS El Capitan 및 iTerm2 3.0.14에서 유효
Aditya

여기의 해결책은 저에게 효과가 없었지만 해결책을 찾았습니다. 처음에는 bashrc와 bash_profile이 없었습니다. 여기에 대한 답변은 bashrc를 만드는 것을 제안합니다. bashrc 파일을 만드는 대신 bash_profile을 만들었고 작동했습니다. 이제 bashrc가 실행되지 않은 이유와 bash_profile이 예인 이유를 이해해야합니다.
kalmanIsAGameChanger

68

iTerm2에서는 이러한 솔루션 중 어느 것도 나를 위해 일하지 않았습니다. 명령을 추가하여 .bashrc 파일을 올바르게 읽을 수있었습니다.

source ~/.bashrc 

받는 사람 : 보내기 시작시 텍스트 내 사용하여 ITerm 프로파일 일반 설정 필드 /.

여기에 이미지 설명을 입력하십시오


수락 된 답변이 제안한 것을 수행하면 어떻게됩니까? 출력이 없습니까?
Daniel Beck

권리. 나는 출력을 얻지 못했고 iTerm 2는 내 별칭이없는 기본 bash 쉘을로드했습니다.
Mark Struzinski 2016 년

그 대답은 지금까지 깨졌습니다. 두 번째 스 니펫은 들어가기로되어 ~/.bashrc있었습니다. 편집했습니다.
Daniel Beck

ZSH를 사용하고 동일한 문제가 발생했습니다. 내 구성 파일이 처음에 존재하지 않아서 생성해야한다는 것을 제외하고. 이 답변을 사용하고 "시작시 텍스트 보내기"를 설정했지만 ZSH를 다시 ​​시작하면 .zsh가 만들어지고 파일을 덮어 썼을 때 "시작시 텍스트 보내기"를 제거하고 새로 생성 된 파일에 구성을 추가 할 수있었습니다. 이것이 누구에게 도움이되는지 확실치 않습니다
Arnolio

나는 이것이 내 문제라고 생각했다. 그리고 나서 내 홈 카탈로그가 내가 처음 시작한 폴더가 아니라는 것을 깨달았다. .bash_profile을 다른 위치로 옮겼을 때 나는 ln -s라고 생각했다. 내 ~ (홈) 카탈로그에서 실제로 잘못된 폴더에 심볼릭 링크를 추가하고있었습니다.이 답변을 사용하려는 다른 사람을 돕기 위해 여기에 추가하면
Alisso

23

Bash를 정말로 사용하는지 궁금합니다. 를 사용할 수 있습니까 , zshecho $SHELL 를 사용하고 있고 on-my-zh 를 설치했을 가능성이 있습니까?

자발적으로 당신과 같은 문제가 발생합니다. 로그인 쉘의 경우 ~ / .bash_profile 또는 로그인하지 않은 쉘의 경우 ~ / .bashrc 대신 ~ / .zshrc 를 구성하여 수정합니다 .

어쩌면 시도해 볼 수 있습니다


1
이 질문은 3 살이고 흥미로운 답변이 있지만 흥미로운 제안입니다.
타이슨

12

내 10.6 컴퓨터 ~/.profile에서 공급됩니다. 따라서 source .bashrc항목 ~/.profile이 작업을 수행해야합니다.


Mac OS El Capitan에서 저를 위해 일했습니다.
user674669

내 경험은 무언가 잘못 당신이 그 일을하는 경우, 그들은 이유 : 대한 분리되어 서로 하나 개 .bashx 파일을 소스하지 않으려는 말한다
알렉산더 밀스

@AlexanderMills이 파일이 존재하는 이유는 Mac이 Unix에서 직접 추출했기 때문입니다. 사용자에게 모두로드하지 않아야 할 이유는 없습니다.
RaisinBranCrunch

서로 호출하면 순환 호출을 얻을 수 있습니다. 문제는 피하는 가장 좋은 방법은 부울을 env var로 뒤집고 부울이 설정되지 않은 경우에만 다른 파일을로드하는 것입니다.
Alexander Mills

8

쉬운 수정.

1. 열려있는 ~/.zshrc파일을

2. 파일 끝에 다음 줄을 추가하십시오.

source ~/.bash_profile

1
훌륭한! 그것은 나를 위해 그것을했다. 내가 Oh-my-zh를 설치 한 후 zsh가 방해를받는 것은 결코 일어나지 않았다.
Cindy Conway

6

내 10.9 컴퓨터에서 ~ / .bash_profile이 소스입니다. ~ / .bash_profile의 소스 .bashrc 항목이 작업을 수행해야합니다.


1

별명 정의를 bash 프로파일 파일에 넣으십시오. 파일을 작성해야하지만 자동으로 소스가됩니다. alias.configuration이라는 별도의 파일을 만들고 다른 사용자가 정의하고 동일한 별칭 세트를 원하기 때문에 .bash_profile에서 소스합니다.


1
실제로도 공급 되지 .bashrc도 않습니다 .bash_profile.
Computist

1

더하다

set -x

시작 부분까지 /etc/profile. 때 이렇게하면 실행됩니다 모두의 라인 별 계정을 제공 bash내에서 소스 파일을 포함하여 시작 /etc/profile, ~/.bash_profile당신이 이해하지 못하는 경우가 조금 어려운입니다, 등 bash매우 잘 스크립트,하지만 당신은 있는지 확인 할 수 있습니다 시작 파일에 오류가 있으며 bash문제를 찾는 데 능숙한 사람 에게 도움이됩니다.

set -x문제 해결이 끝나면 라인을 제거 할 수 있습니다 .


1

10.10 및 iTerm2 2.0에서 사용자 정의 된 프로파일

  • .bash_rc가 작동합니다.
  • .bash_profile, "/ bin / bash"대신 "/ bin / bash --login"을 사용해보십시오.

이 답변은 OS X에서 bash가 ".bashrc"대신 ".bash_rc"를 제공한다는 점을 인정하는 유일한 답변 인 것처럼 보였습니다. 나는 왜 이유를 찾으려고 노력했기 때문에 여기에만 왔습니다 (그리고 여전히 모르겠습니다).
Marnix A. van Ammers

0

iTerm2에서, "login"을 포함한 사용자 정의 명령 대신 "login shell"을 사용하고 있는지 확인하십시오.


iTerm2 명령은 실제로 무엇을합니까?
studgeek

0

다음과 같이 변경하면 iTerm에서 bashrc를 제공합니다.

iTerm> 환경 설정> 일반> [x] 명령 : / bin / bash


0

/ etc / bashrc에 아래 줄을 추가하면 문제를 해결할 수 있습니다

[-r "$ HOME / .bashrc"] &&. "$ HOME / .bashrc"


-1

나는 커플 솔루션을 결합하여 예상대로 작동합니다.

.bash_profile 소스 및 zsh에서 실행하십시오.

Preferences -> Profiles -> General .

명령 아래에서 명령을 선택하십시오.
그리고 텍스트 상자에 추가하십시오 /bin/bash --login.

그런 다음 .bash_profile에서 줄을 추가하십시오. /bin/zsh --login

그게 다야.


(1) 무엇? (2) 당신이 bash항상 달리고 있다면 zsh, 그것은 아무도 기대하지 않습니다.
Scott

/ bin / bash --login을 설정하면 zsh의 기능을 제공하지 않습니다. 그런 다음 환경 설정에서 loginshell로 변경하면 .bash_profile을 읽지 않습니다. 매번 source ~/.bash_profile수동으로 실행 해야합니다. @Scott 위의 작업을 수행 한 후 필요한 방식으로 zsh를 갖습니다.
muhammed basil

(1) 내 요점은 당신이 원하는zsh 것일지도 모르지만 , 이 질문에 의해 요구 되거나 요구 되는 것은 아니며 , [bash] 태그가 붙어 있고에 대해 아무 말도하지 않습니다 . (2) 별명과 쉘 함수를 정의하고 변수를 (내 보내지 않고) 및 / 또는 에 설정하면 쉘 에서 사용할 수 있습니까? zsh.bashrc.bash_profilezsh
Scott
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.