티스토리 뷰
[Linux] 19. 리눅스 셸 설정 (로그인 셸 vs 비로그인 셸, profile, profile.d, bashrc)
h_json 2024. 2. 18. 23:47리눅스 셸 설정
셸 (Shell)
• 셸은 사용자와 운영체제 커널을 이어주는 인터페이스 프로그램.
• 셸도 프로그램이므로 한 가지만 존재하는 것이 아니라 여러 종류의 셸이 존재하고, 이들은 기본적인 기능은 비슷하지만 설정이나 제공하는 기능에서 조금의 차이가 있음.
현재 사용 중인 셸 확인
echo $SHELL
현재 설치되어 있는 셸 확인
cat /etc/shells
계정의 기본 셸
• 계정마다 기본으로 어떤 셸을 사용할 것인지에 대해 설정할 수 있음.
• 사용자 기본 셸 확인
grep [사용자 이름] /etc/passwd
• 사용자 기본 셸 설정
chsh -s [셸 경로] [사용자 이름]
로그인 셸과 비로그인 셸
• 셸은 로그인 셸과 비로그인 셸로 나눌 수 있음.
• 로그인 셸
- 로그인하여 사용하는 셸.
- 로그인이 완료되면 /etc/passwd 계정 정보에 명시되어 있는 기본 셸을 실행하는데, 이것이 대표적인 로그인 셸
• 비로그인 셸
- 로그인하지 않고 사용하는 셸.
- GUI 버전 리눅스에서 터미널을 띄웠을 때 사용하는 셸이 대표적.
프로필 파일
• 사용자에 대한 정보와 사용자가 설정한 개인 설정, 셸 설정 등이 담긴 파일
• 로그인 셸 실행 시 프로필 파일이 자동 실행되어 설정이 적용됨.
• 전체 사용자에게 모두 적용되는 /etc/profile 이 먼저 실행되고, 그 후 사용자마다 개인적인 설정을 할 수 있는 ~/.profile 이 실행됨.
- ~/.profile 과 같이 . 으로 시작하는 파일은 숨김 파일
- 전체 사용자 설정 후 개인 사용자 설정이 진행되므로 겹치는 설정이 있다면 개인 설정으로 덮어써짐.
• 재부팅하여도 꾸준하게 유지하고 싶은 설정 등을 저장할 수 있음.
• /etc/profile 파일은 /etc/profile.d/ 경로에 있는 여러 파일들을 for문으로 돌려서 실행시키는 스크립트 파일임.
- 즉, 전체 사용자에 대한 프로필 설정을 하고 싶다면, /etc/profile 파일 내부에 직접 코드를 추가하여 설정을 추가하여도 되고, /etc/profile.d/ 경로에 새로운 스크립트 파일을 생성하여 설정을 추가하여도 됨.
• ~/.profile 파일도 스크립트 파일이지만, ~/.profile.d 와 같은 파일은 없음.
bashrc 파일
• /etc/profile , ~/.profile 와 같은 프로필 파일은 로그인 셸에게만 영향을 줌.
- 비로그인 셸에는 영향을 주지 않음.
- 우분투 서버와 같은 CLI 리눅스만 사용할 것이라면 이는 신경쓰지 않아도 되는 문제지만, 우분투 데스크탑과 같은 GUI 리눅스를 사용할 때면 비로그인 셸을 사용하기 때문에 염두해야 함.
• 비로그인 셸에 적용되는 설정은 bashrc 파일이 있음.
• 전체 사용자 모두가 사용하는 비로그인 셸에 적용되는 설정은 /etc/bash.bashrc
• 사용자마다 다르게 비로그인 셸 설정을 한다면 ~/.bashrc 파일을 이용
• /etc/profile 과 ~/.profile 파일의 코드를 보면, /etc/profile 파일은 /etc/bash.bashrc 파일을 실행하는 코드가, ~/.profile 파일은 ~/.bashrc 파일을 실행하는 코드가 들어있음.
- 즉, bashrc 파일은 로그인 셸, 비로그인 셸 둘 다 적용되는 설정 파일
logout시 실행되는 파일
• 프로필 파일이 사용자가 로그인할 때 실행되는 파일이라면, ~/.bash_logout 파일은 로그아웃 시 실행되는 파일
이 글은
유튜브 뉴렉처 리눅스(Linux) 서버 강의/강좌 for 개발자
강의를 듣고 공부한 내용을 바탕으로 작성되었습니다.
'🐧 Linux' 카테고리의 다른 글
[Linux] 21. 리눅스 부팅 과정 (BIOS부터 init까지) (0) | 2024.02.22 |
---|---|
[Linux] 20. 환경 변수 (/etc/environment) (0) | 2024.02.19 |
[Linux] 18. 리눅스 런레벨 (Runlevel) (1) | 2024.02.06 |
[Linux] 17. 리눅스 명령어 만들기 (링크 파일, 환경 변수) (1) | 2024.01.31 |
[Linux] 16. 리눅스 실행 파일 만들기 (배치 파일, 셸 스크립트 파일, sh 파일) (0) | 2024.01.30 |