셸이란?
셸은 사용자가 입력한 명령을 해석해 커널로 전달하고,
커널의 처리 결과를 사용자에게 전달한다.
윈도의 터미널처럼 명령을 입력하는 환경이 셸이라고 생각하면 된다.
centos의 bash셸
centos에서 기본적으로 사용하는 셸은 bash셸이다.
alias기능, history기능(화살표위아래키), 연산기능, 자동완성기능(tab키), 명령편집기능 등이 있다.
우선 시스템에 로그인 시 login shell로 동작하게 된다.
기본 로그인 쉘은 bash로, login shell로 동작 시 profile을 읽는다.
· 실행 순서
1. /etc/profile
2. ~/.bash_profile
3. ~/.bashrc
4. /etc/bashrc
/etc/profile 과 .profile
-로그인 시 적용됨
-bash 쉘이 아니어도 적용됨 (로그인하면 무조건 로드되어 적용)
.bashrc, .bash_profile
-로그인 시 적용됨
-bash 쉘로 로그인 되었을 경우만 적용됨
.bash_profile 의 경우, 로그인 되는 시점에 실행
.bashrc 의 경우, 이미 로그인한 시점에서 새로운 콘솔창(세션)을 열때 실행.
/etc/profile , ~/.bash_profile
- /etc/profile
: 시스템 전역(모든 사용자)에 대한 환경설정 파일. 로그인시 설정 내용을 읽어들임. 시스템 전반적인 환경값들을 설정.
- ~/.bash_profile
:시스템에 로그인할 때마다 로드됨, (Login Shell에서 실행됩니다.)
대부분 개별 사용자에 대한 설정에 대한 코드들이 들어감. (각 사용자 환경에 맞는 설정.)
로그인시 설정 내용을 읽어들임.
bash가 처음 로그인할때 실행됨.
bashrc 파일을 수정해도 로그인 할 때 반영되는 이유는 /etc/profile이 /etc/bashrc 파일을 읽어오고
~/.profile이 ~/.bashrc 파일을 읽어오도록 구현되어 있기 때문.
/etc/bashrc, ~/.bashrc
bashrc 파일은 bash가 수행될 때 실행되는 함수를 제어하는 지역적인 시스템 설정과 관련된 파일.
- /etc/bashrc
: 시스템 전역(모든 사용자)에 대한 환경설정 파일. 새로운 bash가 실행될 때 마다 내용을 읽어들임.
- ~/.bashrc
: 개인 사용자에 대한 환경설정 파일. bash가 실행될 때 마다 내용을 읽어들임. (bash가 실행될때마다 수행됨)
(->root의 alias설정을 ~/.bashrc파일에 했더니 잘 실행되고 있다.)
++)
/etc/profile은 부팅후에 적용되며
~/.bash_profile은 재로그인 하면 적용되나
source 명령어를 이용하여 바로 적용할 수 있다.
환경 설정-> profile 파일에,
alias 및 함수 설정-> bashrc 파일에
저장하는 것을 권장
< 로그인부터 로그아웃까지의 절차 >
① 로그인 하게 되면 /etc/profile 을 읽는다.
② /etc/profile.d/*.sh 를 읽어온다. (profile.d(디렉터리의 d) 밑에 *.sh 확장자인 것을 읽어온다.)
③ 그 다음 ~/.bash_profile (=내 홈 디렉터리 밑에 있는 bash_profile) 을 읽어온다. 이것은 각 개인의 마스터 파일이다.
④ bashrc 을 읽어온다. 이것은 보조 파일이다.
⑤ /etc/bashrc 을 읽어온다. 모든 사용자에게 적용되며 $PS1 변수가 들어있다.
⑥ bash_history : 로그아웃했을 때 이전 실행했던 명령어들을 이 파일에 저장하고 빠져 나온다.
⑦ bash_logout : 로그아웃을 했을 때 어떤 일을 하고 싶으면 여기다가 적으면 된다.
셸 관련 파일 및 디렉터리 설명 정리
사용자가 명령행에서 설정한 환경변수나 alias 는 일시적으로 사용 가능하고, 다음 로그인 시에는 적용되지 않는다. 따라서 해당 설정들을 지속적으로 이용하려면 관련 파일에 설정해야 한다. 관련 파일 및 디렉터리는 다음의 표와 같다.
파일 또는 디렉터리명 | 설명 |
/etc/profile | 시스템 전체(모든 사용자)에게 적용되는 환경변수와 시작관련 프로그램 설정한다. |
/etc/bashrc | 시스템 전체(모든 사용자)에 적용되는 alias 와 함수를 설정한다. |
~/.bash_profile | 개인 사용자의 환경 설정과 시작 프로그램 설정과 관련이 있는 파일로 로그인시 읽어 들인다. 경로, 환경변수 등의 설정이 들어있고, 사용자가 PATH 와 같은 환경변수 수정 시 사용하면 된다. |
~/.bashrc | 개인 사용자가 정의한 alias 와 함수들이 있는 파일이다. alias를 지속적으로 사용하려면 이 파일에 설정한다. |
~/.bash_logout | 개인사용자가 로그아웃할 때 수행하는 설정을 지정하는 파일이다. |
/etc/profile.d | 몇몇 응용프로그램들이 시작할 때 위한 필요한 스크립트가 위치하는 디렉터리로 보통 /etc/profile 에서 호출된다. 일반 사용자의 alias 설정 등과 관련한 스크립트가 존재한다. |
ref.)
리눅스 - bashrc, bash_profile :: 단비 새싹 블로그 (tistory.com)
리눅스 - bashrc, bash_profile
이전 게시물에 이어 설명합니다. 2021.08.24 - [Linux] - 리눅스 - 셸, 환경변수, bash 셸 리눅스 - 셸, 환경변수, bash 셸 echo $SHELL 시스템에 로그인한 후에 사용 중인 셸을 확인하려면 로그인 셸관련 환경
ts2ree.tistory.com
/etc/profile, ~/.bash_profile, ~/.bashrc, /etc/bashrc 파일 비교 :: 코딩초보의 블로그 (tistory.com)
/etc/profile, ~/.bash_profile, ~/.bashrc, /etc/bashrc 파일 비교
* login shell & non-login shell 이란 /etc/profile, ~/.bash_profile, ~/.bashrc, /etc/bashrc 파일들은 장치 관리 및 사용자 환경을 위한 설정 파일입니다. 위 파일들의 차이점을 알기 위해선 먼저 login shell..
coding-chobo.tistory.com
'Server, OS > 리눅스' 카테고리의 다른 글
네트워크 관련 설정과 명령어 (0) | 2022.05.23 |
---|---|
리눅스 find 사용법 (파일찾기) (0) | 2022.05.23 |
WARNING: An illegal reflective access operation has occurred (0) | 2022.05.19 |
톰캣 구동 확인 (0) | 2022.05.17 |
centos7 리눅스 alias 영구등록 (0) | 2022.05.17 |