셀(Shell) 은 커널과 사용자간의 다리역할을 한다. 사용자로 부터 명령을 받아 해석하고 프로그램을 실행하는 역할을 한다. 셀(Shell) 은 커널과 분리된 별도의 프로그램으로 다양한 종류가 존재한다. 사용자가 시스템에 로그인하게 되면 각 사용자에게 설정된 셀(Shell) 부여되면서 다양한 명령어를 수행할 수 있는 상태가 된다. 반대로 사용자에게 셀(Shell)을 부여하지 않으면 사용자는 어떤 명령도 내릴 수 없게 된다. 리눅스는 현재 bash shell 을 기본 셸로 하고 있다.
# echo $SHELL
사용중인 셸을 확인하려면 로그인 셸 관련 환경변수 SHELL을 통해 가능하다.
또 다른 사용가능한 셸을 확인하기 위해선 'chsh -l' 명령을 실행하거나 'cat /etc/shells' 명령어를 통해 확인가능하다.

# chsh
이 명령어를 통해 사용자가 로그인 셸을 변경할 수 있다.
# chsh [option] [사용자명]
# option
# s : 사용하고자하는 쉘을 명시한다
# l : 사용가느안 셀의 목록 정보를 출력한다.
# u : 명령어의 사용법을 화면에 출력한다
# v : 설치한 패키지의 버전정보를 출력한다.
# 사용 가능한 셸의 목록 정보가 기록되어 있는 /etc/shells 파일의 내용을 출력한다.
$ chsh -l
# posein 사용자의 셸을 변경한다.
$ chsh posein
# 로그인 셸을 csh로 변경한다.
$ chsh -s /bin/sh

변경한 셸의 적용은 다음 로그인 부터 유효하다.

사용자의 로그인 셸 정보는 /etc/passwd 의 7번째 필드에서 확인할 수 있다.

셸 변수와 환경 변수
# 셸 변수
셸변수 는 특정한 셸에서만 적용되는 변수를 말한다. '변수=값' 형태로 명령행에서 선언할 수 있고 변수 값을 출력할 때는 변수명 앞에 $를 붙이고 echo 명령어로 확인할 수 있다. 선언된 셸 변수를 모두 확인하려면 set 명령어를 사용해야한다.

# 환경 변수
환경 변수 는 프롬프트 변경, PATH 변경과 같이 셸의 환경을 정의하는 중요한 변수를 말한다. 환경변수는 미리 설정된 변수명을 사용하고, bash에서는 PATH, SHELL 과 같이 대문자로만 구성된 변수이다. 환경변수의 목록은 env 명령어를 통해 확인 가능하다.


# 주요 환경변수
# HOME : 사용자의 홈 디렉터리
# PATH : 실행 파일을 찾는 디렉터리 경로
# LANG : 셸 사용시 기본으로 지원되는 언어
# TERM : 로그인한 터미널 종류
# PWD : 사용자의 현재 작업 디렉터리
# SHELL : 사용자의 로그인 셸
# USER : 사용자의 이름
# DISPLAY : x 윈도 출력창
# PS1 : 프롬프트 변수
# PS2 : 2차 프롬프트 변수
# HISTFILE : HISTORY 파일의 절대경로
# HISTSIZE : 히스토리 파일에 저장되는 명령어의 개수
# HISTFILESIZE : 히스토리 파일의 파일 크기
# HOSTNAME : 시스템의 호스트 명
# MAIL : 도착한 메일이 저장되는 경로
# TMOUT : 타입아웃 시간
# UID : 사용자 UID
# 사용자의 홈 디렉토리에 data 디렉토리를 만든다.
$ mkdir $HOME/data
'프로그래밍 > 리눅스' 카테고리의 다른 글
| 리눅스 Linux 네트워크 관련 명령어 ip command ifconfig route netstat ss arp mii-tool ethtool ping traceroute nslookup dig host hostname wget (0) | 2023.04.04 |
|---|---|
| Linux CentOS7 Bash (0) | 2023.03.22 |
| Linux CentOS7 부팅 관련 정리 (0) | 2023.03.21 |
| Linux CentOS7 systemd 프로그램 정리 (0) | 2023.03.20 |
| Linux CentOS7 로그인 / 콘솔변경 / 로그아웃 (0) | 2023.03.17 |