02-2 셸(Shell)

starlikedh
|2022. 8. 28. 17:56

셸이란?

  • 명령어 해석기로 커널과 사용자 간의 대화식 인터페이스를 제공.
  • 로그인할 때 실행되어 사용자별로 사용 환경 설정을 가능하게 함.
  • 강력한 스크립트 언어로 입출력 방향 재지정가 파이프 기능을 제공.
  • 포그라운드/백그라운드 프로세스를 실행.

셀의 종류

  • 본셸계열과 C셸 계열로 나뉨.
  • 사용자 프롬프트가 $이면 본셸계열, %면 C셸 계열을 사용하고 있다는 것.
  • 대부분의 셸은 본셸 계열의 기능을 포함하여 확대 발전한 형태.

셸 확인 및 변경

  • 사용자가 로그인 후 자동으로 생성되는 로그인 셸과 사용자가 직접 변경하는 서브 셸로 구분.
  • 명령어 'echo $SHELL'로 현재 로그인한 사용자가 사용하고 있는 셸 확인 가능.
  • 로그인 셸 변경은 반영구적인 셸 변경 방법으로 관리자가 셸 변경 후 다음 변경을 하기 전까지 지정 셸 사용.
    명령어 chsh로 일반 사용자 환경에서 셸 변경 가능.
  • 명령어 usermod로 관리자 환경에서 지정된 계정의 정보 변경 가능.

환경 변수와 셸 변수

환경 변수(전역 변수) 셸 변수(지역 변수)
전체 셸에서 사용 가능한 전역 변수
서브 셸에 기능 상속 가능
환경 변수 확인 명령: env
현재 로그인 셸에서만 사용 가능한 지역 변수
서브 셸에 기능 상속 불가능
셸 변수 확인 명령: set

주요 환경 변수

변수 기능
PATH 실행항 명령어 경로 검색, 셸 설정 파일 중 하나에 설정
HOME 사용자의 홈 디렉터리 절대 경로
HOSTNAME 호스트명
USER 사용자 이름
PWD 현재 디렉터리의 절대 경로명

환경 변수 설정

명령어 설명
export 환경 변수 리스트 확인
export 변수명 = 변수값 해당 변수명 값에 변수값 등록, 셸 변수를 환경 변수로 변경
echo $변수명 변수명에 해당하는 환경 변수 값 확인
export 변수명 = $변수명:변수값 기존 변수명에 변수 값 추가
unset 변수명 변수 정의 해제

환경 설정 파일

  • 배쉬 셸의 시작 파일은 /etc/profile, /ect/bashrc, ~/.bash_profile, ~/.bashrc
  • 전역적 파일에는 사용자에게 공통으로 영향을 주는 내용이 들어 있으며 /etc 아래에 위치.
  • 지역적 파일은 사용자 개개인을 위한 설정 내용이 들어 있으며 사용자 홈 디렉터리에 숨김 파일 형태로 위치.
  • 디렉터리 /etc/profile.d은 몇몇 응용 프로그램들이 시작 시 자동 실행할 스크립트 파일 경로를 넣어둠.

Bash shell의 주요 기능

History 기능

일정 개수(기본 1,000개) 이상 사용했던 명령어를 .bash_history에 저장해 두고 다시 불러서 사용할 수 있게 하는 기능.
이전에 입력했던 명령어들을 다시 입력하지 않아도, 상하 화살표 키만 누르면 다시 사용할 수 있음.

Alias 기능

자주 사용하는 명령어를 특정 문자로 입력해 두고 간편하게 사용할 수 있게 하는 기능.

 

 

'DevOps&Infra > Linux' 카테고리의 다른 글

02-4 에디터  (0) 2022.09.12
02-3 프로세스 관리  (0) 2022.09.12
02-1 파일 시스템 관련 명령어  (0) 2022.08.28
01-3 리눅스의 기본 명령어(3)  (0) 2022.07.30
01-3 리눅스의 기본 명령어(2)  (0) 2022.07.30