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(본쉘)로 변경

이제 본격적으로 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에게만 적용)
- /etc/profile.d/*. sh 파일들
- /etc/profile
- /etc/bashrc
- ~/. bashrc
- ~/. bash_profile
※ 주의 : 초기화 파일별 제일 아래에 환경변수나, 시작프로그램, 별칭 설정이 된 경우의 실행 순서입니다. 초기화 파일의 아래가 아닌 위, 중간 부분에 환경변수, 시작프로그램 등을 추가한다면 위의 실행 순서로 실행되지 않습니다.

2. 초기화 파일 설명
1~3번 파일 : /etc/profile, /etc/bashrc 및 /etc/profile.d/*. sh 파일들

- 특징 : 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

- 특징 : 특정 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
'컴퓨터 기본 > 리눅스(Linux)' 카테고리의 다른 글
| [Linux] buffer cache 파일 확인하기 (2) | 2022.02.08 |
|---|---|
| [Linux] 하위디렉토리까지 파일검색 후 날짜 출력하기 (하위폴더 검색 및 mtime출력) (0) | 2021.08.09 |
| [Linux] 리눅스 -dev, -devel 패키지란? (0) | 2021.05.13 |
| [Linux] 데이터 랜덤 추출 (sort , shuf) (0) | 2021.02.16 |
| 엘라스틱서치(elasticsearch)에 IP 설정해서 외부에서 접속하기 (0) | 2020.03.30 |