행궁동 데이터 엔지니어

반응형

Linux 배시 쉘(Bash Shell, 배시 셸) 초기화 파일(/etc/profile, /etc/bashrc, ~/. bash_profile 등)에 대해 정리해봤습니다.

배시 (Bash, Bourne-again shell, 본 어게인 셸)은 본 셸을 대체하는 자유 소프트웨어로서 GNU 프로젝트를 위해 브라이언 폭스(Brian Fox)가 작성한 유닉스 셸이다.[2][3] 1989년 발표되어 GNU 운영 체제와 리눅스, 맥 OS X 그리고 다윈 등 운영 체제의 기본 셸로 탑재되어 광범위하게 배포되었다. 또한 DJGPP와 노벨 넷웨어에 의해 도스로 이식되었고 시그윈과 MinGW의 배포로 마이크로소프트 윈도우로 이식되었다. - 출처 : 위키백과

 

위의 위키백과 설명처럼 배시 쉘은 터미널 실행시(로그인 시) 기본 쉘로 사용됩니다.

bash쉘 초기화 설정 파일인 /etc/profile, ~/bashrc 등에 환경변수, 시작프로그램, 함수, 별칭(alias) 등을 추가하면 Linux를 효과적으로 사용할 수 있습니다.

 

# 로그인쉘 확인하는 명령어
env | grep SHELL
echo $SHELL

# 사용가능한 쉘 리스트 확인
cat /etc/shells

# User별 로그인 쉘 확인하기
cat /etc/passwd

# 쉘 변경하기 (chsh 명령어)
chsh -s [쉘경로] [사용자 이름] 
# ex. chsh -s /bin/sh root ← root의 기본쉘을 sh(본쉘)로 변경

사용자 쉘 확인화면 env, /etc/shells, /etc/passwd 확인

 

이제 본격적으로 Bash 쉘 초기화 파일 종류 / 실행 순서에 대해 설명하겠습니다.

 

1. 초기화 파일 종류 및 실행 순서

초기화 파일 목록 확인 스크립트와 실행 순서

# 초기화 파일 목록
ls -lh /etc/profile.d/*.sh /etc/profile /etc/bashrc ~/.bashrc ~/.bash_profile

# 초기화 파일 내용 확인하기 (awk 명령어 사용)
ls /etc/profile.d/*.sh /etc/profile /etc/bashrc ~/.bashrc ~/.bash_profile | awk '{print $NF}' | xargs grep -n 검색문자열

초기화 파일의 실행 순서는 아래와 같습니다.

(1~3 파일은 모든 User에게 적용, 4~5번 파일은 해당 User에게만 적용)

  1. /etc/profile.d/*. sh 파일들
  2. /etc/profile
  3. /etc/bashrc
  4. ~/. bashrc
  5. ~/. bash_profile

※ 주의 : 초기화 파일별 제일 아래에 환경변수나, 시작프로그램, 별칭 설정이 된 경우의 실행 순서입니다. 초기화 파일의 아래가 아닌 위, 중간 부분에 환경변수, 시작프로그램 등을 추가한다면 위의 실행 순서로 실행되지 않습니다.

초기화 파일 확인 예시

 

2. 초기화 파일 설명

1~3번 파일 : /etc/profile, /etc/bashrc 및 /etc/profile.d/*. sh 파일들

cat으로 /etc/profile 및 /etc/basrc 파일 확인

 

  • 특징 : login 쉘로 배시쉘을 사용하는 모든 User에게 공통 적용됨
  • /etc/profile : login 쉘을 배시쉘로 실행하는 모든 user에게 적용
    • bash shell을 실행하는 모든 시스템에 적용할 환경변수 및 프로그램 추가 (함수나 별칭은 /etc/bashrc에 추가하는 것을 추천)
    • /etc/profile을 직접 편집하는 것보다 /etc/profile.d에 shell script 추가하는 것을 추천함
  • /etc/bashrc : login 쉘을 배시쉘로 실행하는 모든 user에게 적용
    • bash shell을 실행하는 모든 시스템에 적용할 함수나 별칭들(aliases) 추가

4~5번 파일 : ~/. bashrc, ~/. bash_profile

Login User 홈디렉터리(~)의 ~/.bashrc 및 ~/.bash_profile 파일 확인

  • 특징 : 특정 User 에게만 적용됨
  • ~/. bashrc : User에게 적용할 함수나 별칭 추가
  • ~/. bash_profile : User에게 적용할 환경변수 및 시작 프로그램 추가

 

기타 궁금하신 사항은 댓글 남겨주세요.

 

감사합니다.

 

1. 제타위키, profile bashrc bash profile 실행 순서, https://zetawiki.com/wiki/Profile_bashrc_bash_profile_%EC%8B%A4%ED%96%89_%EC%88%9C%EC%84%9C
2. 제타위키, Bash 쉘 초기화 파일, https://zetawiki.com/wiki/Bash_%EC%89%98_%EC%B4%88%EA%B8%B0%ED%99%94_%ED%8C%8C%EC%9D%BC
3. 코딩팩토리, [Linux] 리눅스 쉘(Shell) 확인 및 변경하는 법, https://coding-factory.tistory.com/507
반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band