티스토리 뷰

Daylogs/Unix

bash_profile

ohgyun 2013. 1. 11. 10:39


발생일: 2013.01.11

문제:
*nix 기반의 설정 파일을 공유하자는 dotfiles.github.com 가이드를 보고 맥에 적용해봤다.


난 Paul Irish의 것을 포크해서 쓰고 있는데, (https://github.com/ohgyun/dotfiles)
내 입맛에 맞게 바꿔보려고 하니 설정 파일이 많아 좀 헷갈리더라.

이참에 쉘 스크립트를 공부해봐야겠다 싶어서 조금씩 보고 있는 중이다.

dotfiles repository를 처음 보고 들었던 생각은 이런 것들이었다.
  "어디서부터 시작해야 되지..."
  ".bash_profile 파일은 봤는데, .function 이며, .aliases 라는 것들도 원래 있었던 건가..."


해결책:

환경 설정 파일에는 아래 3가지가 있다.

  .bash_profile
    시스템에 로그인할 때마다 실행된다. (login shell 에서 실행된다)
    .bash_profile 을 찾지 못하면, .bash_login 을 찾고, 없다면 .profile 을 찾는다.

  .bashrc
    이미 로그인 한 상태에서 새 터미널 창을 열 때마다 실행된다. (non-login shell에서 실행된다)

  .bash_logout
    login shell을 종료할 때마다 실행한다.

단, Mac OS X에서는 로그인 여부에 관계 없이 모든 터미널 창을 login shell로 실행한다.

만약 새 터미널 창을 열 때마다 .bash_profile 을 실행하게 하고 싶다면,
.bashrc 에서 .bash_profile 을 호출하도록 해두면 된다.



.bash_profile 의 경우, 아래와 같은 순서로 실행된다.

  1. /etc/profile 을 실행한다.
  2. ~/.bash_profile 을 실행한다.
    2.1. 없다면, ~/.bash_login 을 실행한다.
    2.2. 없다면, ~/.profile 을 실행한다.

실행 순서에 대한 좀 더 자세한 내용은 아래 포스트를 참고하자.



dotfiles에서 가져온 것들을 보면 위에서 언급한 파일 이외에도 여러 개의 닷파일이 있다.
(예: .aliases, .function, ... )

이 파일들은 기본 실행 파일은 아니며,
.bash_profile 에서 아래와 같이 설정해 나눠둔 파일을 불러와 실행하고 있다.

  for file in ~/.{extra,bash_prompt,exports,aliases,functions}; do
      [ -r "$file" ] && source "$file"
  done



첨엔 왠 설정 파일이 이렇게 많은지 정신이 없었는데,
알고 보니 특징 별로 아주 잘 분류해놓은 거였다. ㅎㅎ

여튼, 재밌구낭~~~

덧) 
.bashrc 나 .vimrc 와 같은 파일에서 rc 는 "Run Commands" 를 의미한다.



반응형
댓글
공지사항