강좌
클라우드/리눅스에 관한 강좌입니다.
자격증 분류

리눅스마스터2급강좌 : 쉘의 개념 및 역할

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터2급강좌 : 쉘의 개념 및 역할

 

 

일반적인 리눅스(또는 유닉스) 시스템의 내부 구조를 크게 나누어 본다면 Hardware, Kernel, Shell, Applications 등의 4가지로 구분해 볼 수 있다.

 

 

 

 

다음 그림은 일반적으로 리눅스(또는 유닉스) 시스템의 작동 계층을 설명할 때 자주 등장하게 되는 그림이다.

 

 

 

 

아래의 그림에서 알 수 있듯이 리눅스의 커널(Kernel)과 사용자가 동작시키는 명령이나 프로그램들의 사이에 쉘이 존재한다는 것을 알 수 있다.

 

 

 

 

 

 

6ea6a5c16185de2f6af2ca44aca8b1ed_1676445954_4325.png
 

 

(Shell)은 리눅스의 핵심인 커널과 사용자를 연결해 주는 인터페이스 역할을 한다.

 

 

 

 

우리가 사용하는 프로그램은 일반적으로 바이너리 형태의 명령어 집합체이며, 컴퓨터는 기본적으로 바이너리 형태의 정보들을 읽어 들인다.

 

 

 

 

따라서 관리자나 사용자가 컴퓨터에 일정한 명령을 내리기 위해서는 매개체로서의 특정한 인터페이스가 필요했고 이런 역할을 하도록 하는 것이 쉘이다.

 

 

 

 

, 쉘은 키보드를 통한 사용자의 요청에 따른 명령어를 해석하여 커널에 전달해 주고 커널의 처리 결과를 사용자에게 전달해 주는 역할을 하는 일종의 명령어 해석기(command interpreter) 역할을 한다.

 

 

 

 

쉘은 커널과 사용자를 연결해 주는 별도의 프로그램으로 사용자가 운영체제를 좀 더 쉽게 사용할 수 있도록 도와주는 역할을 하는 것이다.

 

 

 

 

 

 

이러한 쉘은 크게 세 가지의 기능을 한다.

 

대화식의(Interactive) 사용사용자의 요청을 기다려서 요청 즉시 결과 값을 출력해 주는 대화형 구조를 가진다.

 

 

 

 

, 사용자가 입력한 명령을 읽어 들여서 해석하고 리눅스 시스템을 통해서 실행되게 한다.

 

프로그래밍쉘은 강력한 프로그래밍 언어 기능을 가지고 있어서, MS-DOS의 배치(BATCH) 파일과 같이 복합적인 작업을 수행할 수 있도록 일련의 명령어들을 묶어서 사용할 수 있다.

 

 

 

 

이러한 프로그래밍된 파일을 스크립트(script)라고 하는데, 프로그래밍에는 쉘들에 내재된 명령어를 사용할 수도 있고 리눅스 명령어를 사용할 수도 있다.

 

 

 

 

그리고 쉘들에 내재된 명령어는 /bin이나 /usr/bin 디렉토리에 위치하고 있는 시스템 커맨드들과 동일하게 작동한다.

 

 

 

 

스크립트는 바이너리로 컴파일되지 않고 그대로 쉘에 의해서 해석되어 실행될 수 있다.

 

 

 

 

 

스크립트와 일반적인 프로그래밍의 차이

스크립트와 프로그래밍의 차이는 속도와 기능성에 있다.

 

 

 

 

프로그래밍은 어려운 만큼 속도가 빠르고 기능이 많다.

 

 

 

 

그러나 프로그래밍 언어들로 만들어진 프로그램들이 다른 플랫폼에 이식되기 어려운 것에 비해 스크립트는 다른 플랫폼에서도 잘 돌아간다.

 

 

 

 

프로그래밍은 소스를 컴파일하는 데 비해 스크립트는 소스 그대로 해석되기 때문이다.

 

 

 

 

 

리눅스 세션(session)의 설정(Customization)쉘은 리눅스의 세션에 대한 변수들을 정의하여 사용자가 리눅스 환경을 자신이 원하는 상태로 설정할 수 있도록 한다.

 

 

 

 

, 환경 설정 파일을 수정함으로써 사용자와 시스템의 동작 환경을 쉽게 변경할 수 있게 한다.

 

 

 

 

예를 들어 사용자는 키보드 조작, 화면 표시 기능, 프로세스의 동작 환경 등을 설정할 수 있다.

 

 

 

 

이러한 변수는 이미 정의되어 있기도 하고 직접 설정할 수도 있다.

 

 

 

 

 

 

쉘은 운영체제의 한 부분이지만 커널과는 분리된 별도의 프로그램으로서 여러 개의 다른 쉘을 필요에 따라 선택해 사용할 수 있어야 하므로 쉘의 종류에 대해서 먼저 알아본다.

 

 

 

 

그리고 이런 쉘을 시스템에 제대로 이용하기 위해서는 기본 구문부터 이해할 수 있어야 하며 또한 시스템에 직접 응용할 수 있어야 하므로 이에 대해서 살펴보도록 한다

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,016 명
  • 현재 강좌수 :  35,688 개
  • 현재 접속자 :  213 명