Shell 이란? 리눅스 커널과 사용자 간의 가교 역할을 하는 소프트웨어로 본쉘, C쉘, 콘쉘, bash, dash 등 다양한 쉘이 있다. 일반적으로 우분투의 경우 사용자는 bash 쉘, 시스템은 dash 쉘을 사용하도록 기본 설정되어 있다.

* 사용자 쉘 확인

echo $SHELL
cat /etc/passwd

* 시스템 쉘 확인

ls -l /bin/sh

* 사용자 쉘 변경

/etc/passwd 파일의 내용을 수정하거나 chsh(change shell)명령을 이용한다. 변경후엔 재시작을 해야 적용된다.

* 사용 가능한 Shell 목록 확인

cat /etc/shells

Shell은 크게 3가지 역할을 한다. (1. 명령어 해석기 기능, 2. 프로그래밍 기능, 3. 사용자 환경 설정 기능) Shell 의 종류에 따라 차이가 있으나 대개의 경우 shell 실행 후 사용자에 맞는 환경을 구성할 수 있도록 초기화 파일을 제공한다. 따라서 새롭게 로그인 할 때 마다 적용하고 싶은 명령이나 변수, 설정 등이 있다면 해당 파일에 적어 놓으면 된다. 초기화 파일은 크게 2가지로 시스템 환경 설정 파일사용자 환경 설정 파일로 나눌 수 있다. 시스템 환경 설정 파일은 전 사용자 공통 환경 설정 파일이며 /etc/ 에 위치한다. 사용자 환경 설정 파일은 개별 사용자의 환경을 설정하며 해당 사용자의 홈 디렉터리에 있다. 대표적인 bash shell의 환경 설정 파일은 아래와 같다.

* 시스템 환경 설정 파일

/etc/profile 각 파일, 디렉터리의 존재 유무를 확인후 실행한다. (/etc/bash.bashrc, /etc/profile.d/*.sh 실행)
/etc/bash.bashrc 시스템 공통으로 적용되는 .bashrc 파일 (bash run commands)
/etc/profile.d/*.sh 필요한 설정 파일을 추가한다.

참고1

* 사용자 환경 설정 파일

~/.profile .bashrc 와 같은 다른 환경 설정 파일들의 실행, PATH 추가한다.
~/.bashrc 환경 변수, alias, function 등을 설정한다.
~/.bash_logout 로그 아웃시 실행할 함수 등을 설정한다.

환경 설정 파일을 수정한 후 적용하기 위해선 source "환경 설정 파일" 또는 . "환경 설정 파일" 을 사용한다.

'개발 > linux' 카테고리의 다른 글

[번역] 라즈베리파이 커널 빌드 방법  (0) 2021.11.27
리눅스 역사  (0) 2021.11.23
vi 사용법  (0) 2020.06.16
하드링크, 심볼릭링크 개념 및 사용법  (0) 2020.06.02
리눅스 명령어 약자 확인하기  (0) 2020.05.28

+ Recent posts