Mac OS X Snow Leopard 및 Lion에서 .bashrc 파일을 찾을 수있는 곳은?


89

Snow Leopard 시스템에 rvm을 설치하고 싶습니다.

.bashrc파일에 줄을 추가해야한다고 말하지만 (bash를 사용하고 있습니다) .bashrc파일 은 어디에 있습니까?


1
솔루션을 답변에 넣고 수락해야합니다 (SU가 허용하기 위해 하루나 이틀 정도 기다려야합니다). 같은 문제를 가진 사람들이 질문을 볼 수있는 방법은 답변이 있음을 알 수 있습니다.
Nifle

1
그의 해결책은 최고의 투표 답변과 다르지 않습니다.
David Cowden

"Linux = .bashrc vs. Mac OS =. (bash_) profile"의 문제가 아니라는 것을 확인하기 위해 쉘 시작 파일은 Linux 및 Mac에서 동일하게 작동하며 .bashrc 파일은 Session에 더 적합한 장소입니다. 특정 설정. 예를 들어 tmux 또는 screen을 사용하면 로그인 세션이 없지만 별명을 원할 수 있습니다. Mac이 다른 느낌을주는 이유는 대부분의 Linux 배포판에서 이미 bashrc를 위임 (소스) 한 시스템 프로파일 스크립트 또는 스켈레톤 프로파일을 제공하기 때문입니다.
eckes

답변:


78

.bashrc위 의 문제와 관련하여 :

대부분의 시스템에서 대화 형 비 로그인 셸을~/.bashrc 시작할 때만 사용됩니다 . 그러나 새 쉘을 시작할 때 종종 대화식 로그인 입니다. 이것은 로그인 쉘 이므로 무시됩니다. 비 로그인 및 로그인 쉘 사이의 일관된 환경을 유지하기 위해, 당신은 소스 있어야합니다 귀하의에서 나 ..bashrc.bashrc.profile.bash_profile

Bash 참조 매뉴얼 섹션 6.2 Bash 시작 파일을 참조하십시오.

대화식 로그인 쉘 또는 --login으로 호출

Bash가 대화식 로그인 쉘 또는 --login 옵션을 사용하는 비 대화식 쉘로 호출되면 파일이 존재하는 경우 먼저 / etc / profile 파일에서 명령을 읽고 실행합니다. 해당 파일을 읽은 후 ~ / .bash_profile, ~ / .bash_login 및 ~ / .profile을 순서대로 찾고 존재하고 읽을 수있는 첫 번째 파일에서 명령을 읽고 실행합니다.

대화 형 비 로그인 셸로 호출

로그인 쉘이 아닌 대화식 쉘이 시작될 때 Bash는 ~ / .bashrc에서 해당 파일이있는 경우 명령을 읽고 실행합니다.

따라서 일반적으로 ~ / .bash_profile에는 다음 줄이 포함됩니다.

   if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

로그인 별 초기화 후 (또는 이전)

Mac (Running Leopard)에는 source to line이 없었습니다 ~/.bashrc. 이 기능을 직접 추가해야했습니다.

일부 시스템 및 기타 OS에서는 .bashrc전역 /etc/profile또는 /etc/bash_profile에서 제공되거나에서 템플릿 파일을 사용하여 수행됩니다 /etc/skel.

커뮤니티 의 구별 .bashrc.bash_profile솔직함을 잘 이해하지 못합니다. 많은 개발자가 ".bashrc에 추가"라고 말할 때 실제로 의미하는 것은 ".bash_profile에 추가"입니다. 그들은 기능이 추가되고 싶지 로그인 (인 쉘 .bash_profile아닌에) 비 로그인 쉘. 실제로는 일반적으로 중요하지 않으며 구성을 배치하는 .bashrc것이 허용됩니다.


이 링크는 쉘 유형과 시작 파일이로드 될 때의 좋은 개요를 제공합니다.- hacktux.com
bash

여기서 "소스 화"란 무엇입니까?
elgrego

@elgrego, 여기에 좋은 설명이 있습니다 : 파일이 소스 일 때 (명령 줄에 source filename 또는. filename을 입력하여), 파일의 코드 줄은 마치 명령 줄에 인쇄 된 것처럼 실행됩니다.
Stefan Lasiewski

60

따라서 Mac OS X Snow Leopard와 Mac OS X Lion에서는로드 된 파일이 .profile아니라 이라고 .bashrc합니다.

당신이하고 싶은 일은 파일을 만들고 ~/.profile.profile (아직없는 경우)이라고 부르는 것입니다.

거기에 각 bash 인스턴스와 함께로드하는 데 필요한 정보를 넣으십시오 (감사합니다, 자주색 픽셀).

몇 가지 참고 사항 :

  1. 파일 앞의 마침표는 기본적으로 Finder와 ls 명령에 보이지 않는 것으로 표시합니다. 터미널에서 ls 명령을 사용하여 보이지 않는 파일을 나열하려면 다음 -a과 같이 매개 변수로 사용하십시오 .ls -a
  2. ~기호는 /Users/YourUserNameYourUserName이 사용자 이름의 짧은 이름을 나타 냅니다 .

편집 : Chris Page는 .profile 파일에 배치하면 무엇이든 사용중인 모든 쉘 (예 : zhs, bash 등)에 적용된다고 올바르게 지적합니다. 내용이 bash 쉘에만 영향을 미치려면 .bash_profile파일 대신 파일에 내용을 넣으십시오 .profile.


5
귀하의 질문은 2010 년 6 월 1 일에 [정확하게] 답변되었습니다. 1 년 후, 당신은 다시 와서 똑같은 대답을 제공하고 자신의 대답을 받아들입니다 ...
David Cowden

3
실제로 그의 답변은 2010 년 6 월 1 일에 제공된 답변보다 더 자세한 내용을 추가합니다. 그는 특히 내가 도움이 된 Mac OS X의 문제를 해결합니다.
webworm

3
.bash_profile홈 디렉토리에 이미 존재 하는 경우 .profile파일을 읽을 수 없습니다!
Phani

Mac Os El Capitan을 새로 설치했습니다. 프로필 파일 이 없습니다 . .profile 파일을 작성하면 작동합니다. 개인적으로 .bashrc의 이름을 .profile로 바꿨습니다.
니콜라스 테리

4

당신은 당신의 자신을 만들어야합니다 .bashrc. 텍스트 편집기를 사용하여 .bashrc원하는 내용으로 (확장자 없음) 이라는 파일을 만들어 홈 디렉토리 ( /Users/YourUserName/) 에 저장할 수 있습니다 .


1
실제로, 그것은 효과가 없었지만, 당신은 나에게 내 자신의 파일을 만들라고 말함으로써 올바른 방향으로 나를 보냈습니다. Snow Leopard 구성에서 작동 한 파일은 .bashrc가 아닌 .profile입니다 (이 이유로 OS에서로드되지 않음). 질문에 자세한 지침을 게시하겠습니다. 감사!
Yuval

@Yuval : 기본적으로는 .bashrc작동하지만 것이다 아무있는 경우에만 .profile. ~/.profile그래도 기본적으로 존재한다고 생각 합니다. 기꺼이 도와 드리겠습니다! (그리고 당신은 해결책을 대답에 넣고 미래 의이 질문을 읽는 사람들에게 받아 들여야합니다).
squircle

.profile없는 경우에만 귀하의 의견 이 잘못 생각합니다 . .bashrc는 대화 형 비 로그인 셸 내에서 또는 .profile에서 제공 한 경우 작동합니다 (.profile은 Bourne 셸이므로 .bash_profile이 더 나은 곳일 수 있습니다). .profile은 대화식 비 로그인 쉘 중에 사용됩니다.
Stefan Lasiewski 2016 년

@Stefan 그렇다면 정확하게 들립니다. 나는 전문가 : 아니에요
squircle

2
아무도;)입니다. 이 것들 (.bashrc 대 .profile 대 .bash_profile 대 .bash_login 대 대화식 로그인 셸 대 대화식 비 로그인 셸 대 비 대화식 셸)은 혼란스럽고 많은 유닉스와 쉘 스크립트에 의해 깨져서 무시됩니다.
Stefan Lasiewski 2016 년

3

OS 10.6.5에서 bash 설정은 "/ etc / bashrc"에 있습니다. 이것이 쉘의 최상위 사양이라고 생각합니다.

그러나 수정하려면 루트 계정이 필요합니다. 시스템 레벨 bash 설정을 읽고로드하려면 로컬 사용자 별 스펙 "~ / .bashrc"가 다음 스 니펫으로 시작해야합니다.

if [ -r /etc/bashrc ]; then
    . /etc/bashrc 
fi

일반적으로 시스템 수준 bashrc에 별칭을 추가하여 모든 사용자가 별칭에 액세스 할 수 있도록합니다. 단축키와 별칭을 사용하지 않으려는 경우가 아니면

행운을 빕니다!


2
/ etc / profile (로그인 셸에서 실행)은 모든 사용자에게 적용되는 전역 bash 시작 스크립트이며 로그인 셸에 대한 기본 동작을 제공합니다. 그런 다음 / etc / bashrc를 실행합니다. 여기에는 로그인 쉘과 비 로그인 쉘 모두에 적용되는 사용자 정의가 포함됩니다. 마찬가지로 개별 사용자는 ~ / .bashrc를 실행하는 ~ / .bash_profile 파일을 만들어야합니다. ~ / .bashrc는 대부분의 사용자 지정이 필요한 위치이며 ~ / .bashrc는 / etc / bashrc를 실행하여 비 로그인 셸의 기본 동작을 상속해야합니다.
Chris 페이지

1
개별 사용자의 경우이 사용자 지정 내용을 홈 디렉토리 ( ~/.bashrc가 아닌) 에 추가하는 것이 가장 좋습니다 /etc/bashrc. /etc/bashrc시스템의 모든 사용자에 대한 전역 설정이며 원하는 것은 아닙니다. 또한 Apple은 /etc/bashrc주기적으로 제공되어 변경 될 수 있으며, 이로 인해 사용자 지정 내용이 사라질 수 있습니다.
Stefan Lasiewski

1

.profile 파일을 사용하여 Linux .bashrc 파일에 추가 할 항목을 추가하십시오.

예를 들어

PATH=/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/:/opt/local/bin:/opt/depot_tools/:~/bin:$PATH
alias t='/Users/<username>/.todo/todo.sh'
alias punch='python /Users/<username>/.todo/Punch.py'
alias clock='cat </dev/tcp/time.nist.gov/13'
alias sudotext="sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit" 

2
다른 쉘에서 사용자 정의가 적용되기를 원하고 호환 가능하지 않다면 ~ / .bash_profile (~ / .profile 대신)을 사용하는 것이 좋습니다.
Chris 페이지

"Linux = .bashrc vs. Mac OS =. (bash_) profile"의 문제가 아니라는 것을 확인하기 위해 쉘 시작 파일은 Linux 및 Mac에서 동일하게 작동하며 .bashrc 파일은 Session에 더 적합한 장소입니다. 특정 설정. 예를 들어 tmux 또는 screen을 사용하면 로그인 세션이 없지만 별명을 원할 수 있습니다. Mac이 다른 느낌을주는 이유는 대부분의 Linux 배포판에서 이미 bashrc를 위임 (소스) 한 시스템 프로파일 스크립트 또는 스켈레톤 프로파일을 제공하기 때문입니다.
eckes
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.