man bash
명령어를 이용하여 관련 내용이 담긴 메뉴얼을 확인할 수 있다.

환경설정 파일의 종류
/etc/profile
- 시스템 전역 shell 변수 정의
- login shell 일 때 수행됨
- user가 shell에 로그인하게 되면 가장 먼저
/etc/profile
파일을 읽음
USER
, LOGNAME
, HOSTNAME
등의 shell 변수들이 선언되어 있음
- 해당 파일을 통해 시스템 전역 shell 변수 초기화 가능
/etc/bashrc
- shell 함수, alias 시스템 전역 변수 정의
~/.bash_profile
- 시스템 전역에 적용되는 환경설정이 아닌, 유저 개개인의 환경 변수를 설정
- login shell 일 때 수행됨
~/.bashrc
- 유저 개개인의 명령어 alias, 환경변수를 설정
- non-login shell 일 때 수행됨
/etc/bashrc
로드 후에 해당 파일이 로드됨
~/.bash_logout
- 로그아웃 설정파일
- 각 유저 자신에 대한 로그아웃 절차를 포함
- 로그아웃 시 실행할 절차를 선언 가능
환경 설정 파일 인식 순서
/etc/profile
➡️ ~/.bash_profile
➡️ ~/.bashrc
➡️ /etc/bashrc
source
명령어
- 리눅스 환경 설정 파일들을 수정하기만 한다고 바로 내용이 적용되는 것은 아님
- 리부팅이나 쉘에 재 로그인하여야 해당 내용이 적용됨
- 현재 쉘에서 새로운 환경 설정 내용을 적용하기 위해서는
source
명령어를 사용
source 파일명
login shell과 non-login shell의 차이
login shell
- 계정과 암호를 입력하여 shell을 실행하는 것
- ssh로 접속하거나 로컬에서 GUI를 통해 Shell을 실행하는 경우가 이에 해당
- Login 시
.profile
과 .bash_profile
두 파일을 로드하게 됨
.profile
은 bash가 아니더라도 Login 시 로드됨. ex) PATH
.bash_profile
은 bash로 Login 시에만 로드됨
non-login shell
- Login 없이 실행하는 Shell
- ssh로 접속하고 나서 다시 bash를 실행하는 경우나, GUI 세션에서 터미널을 띄우는 경우가 이에 해당
.bashrc
파일이 로드됨
sudo bash
나 su
로 root 권한을 얻으려 bash를 실행할 때에도 해당 파일이 로드됨
- 참고) Mac OS X에서는 로그인 여부와 관계 없이 모든 터미널 창을 Login Shell로 실행됨 👉
.bash_profile
이 로드됨