티스토리 뷰

728x90

리눅스 셸 설정

셸 (Shell)

• 셸은 사용자와 운영체제 커널을 이어주는 인터페이스 프로그램.

• 셸도 프로그램이므로 한 가지만 존재하는 것이 아니라 여러 종류의 셸이 존재하고, 이들은 기본적인 기능은 비슷하지만 설정이나 제공하는 기능에서 조금의 차이가 있음.

 

현재 사용 중인 셸 확인

echo $SHELL

현재 셸은 bash를 사용 중임을 알 수 있음.

 

현재 설치되어 있는 셸 확인

cat /etc/shells

설치되어 있는 셸 목록 출력

 

계정의 기본 셸

• 계정마다 기본으로 어떤 셸을 사용할 것인지에 대해 설정할 수 있음.

• 사용자 기본 셸 확인

grep [사용자 이름] /etc/passwd

사용자 ubuntu의 기본 셸은 /bin/bash

• 사용자 기본 셸 설정

chsh -s [셸 경로] [사용자 이름]

chsh 명령을 이용하여 사용자 ubuntu의 기본 셸을 /bin/dash로 설정
재로그인 후 바뀐 $SHELL 값의 출력과 셸 프롬프트

 

로그인 셸과 비로그인 셸

• 셸은 로그인 셸과 비로그인 셸로 나눌 수 있음.

• 로그인 셸

     - 로그인하여 사용하는 셸.

     - 로그인이 완료되면  /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 파일은 로그인 셸, 비로그인 셸 둘 다 적용되는 설정 파일

cat 명령어로 확인한 /etc/profile의 내부. /etc/bash.bashrc 파일을 실행시키는 코드와 /etc/profile.d 내부의 sh 코드들을 for문으로 실행시키는 코드가 들어있음.

 

logout시 실행되는 파일

• 프로필 파일이 사용자가 로그인할 때 실행되는 파일이라면,  ~/.bash_logout  파일은 로그아웃 시 실행되는 파일

 

 

 

 

 

 

 

 

 

이 글은

유튜브 뉴렉처 리눅스(Linux) 서버 강의/강좌 for 개발자

강의를 듣고 공부한 내용을 바탕으로 작성되었습니다.


728x90
댓글
공지사항