본문 바로가기
프로그래밍/리눅스

Linux CentOS7 Shell 정리

by 참외롭다 2023. 3. 21.
반응형

셀(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

 

 

반응형