ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ 기본정리 ] 셸
    Technique/LINUX 2016. 5. 4. 12:00
    반응형

    은 사용자와 리눅스 커널 사이에서 중간자 역할을 수행한다. 우리가 셸이라고 부르는 특별한 프로그램은 한가지만 있는 것이 아니다.

    최초의 셸인 본 셸부터 리눅스 셸이라고도 불리는 배시 셸까지 다양한 셸이 있으며, 지금도 계속 새로운 셸이 개발되고 있다.

    각 셸은 제공하는 기본적인 기능이 비슷하지만 편리 기능이나 사용자 환경 설정 등에 약간씩 차이가 있다.


    기능


    명령어 해석기 기능

    사용자와 커널 사이에서 명령을 해석하여 전달하는 해석기( interpreter ) 와 번역기 ( translator ) 기능이다.

    셸은 사용자가 입력한 명령이나 파일에서 읽어들인 명령을 해석하고 적절한 프로그램을 실행한다. 사용자가 로그인하면 셸이 자동으로 실행되어 사용자가 명령을 입력하기를 기다린다. 이렇게 실행되는 셸을 로그인 셸이라고 하며 /etc/passwd 파일에 사용자별로 지정되어 있다.


    셸이 사용자의 명령을 기다리고 있음을 나타내는 표시를 프롬프트라고한다. 셸은 대기 상태로 있다가 사용자로부터 명령이나 스크립트를 읽어들여 우선 이 명령이 셸 자체의 내장 명령인지 판단한다. 내장 명령은 특별한 추가 작업 없이 바로 실행된다.

    내장 명령이 아니라면 별도의 실행 파일이 있음을 뜻하므로 셸은 자식 프로세스를 만들고 이 자식 프로세스가 실행 파일을 실행하게 한다.

    자식 프로세스가 실행 파일을 실행하는 동안 부모인 셸은 대기 상태가 되며, 자식 프로세스가 실행을 종료하면 셸의 대기 상태가 해제되어 복귀하면서 다시 프롬프트를 출력한다.


    프로그래밍 기능

    셸은 자체 내에 프로그래밍 기능이 있어서 프로그램도 만들 수 있다.

    셸의 프로그래밍 기능을 이용하면 여려 명령을 사용하여 반복적으로 수행하는 작업을 하나의 프로그램으로 만들 수 있는데, 이렇게 작성된 셸 프로그램을 셸 스크립트라고 부른다.


    사용자 환경 설정 기능

    사용자 환경을 설정핯ㄹ 수 있도록 초기화 파일 기능을 제공한다. 초기화 파일에는 명령을 찾아오는 경로를 설정하거나, 파일과 디렉토리를 새로 생성할 때 기본 권한을 설정하거나 다양한 환경 변수 등을 성정할 수 있다. 사용자가 로그인할 때 이 초기화 파일이 실행되어 사용자별로 특성에 맞게 초기 환경이 설정된다;


    종류


    본 셸 ( Bourne shell )

    유닉스 V7에서 처음 등장, 개발자의 이름인 스티븐 본 ( Stephen Bourne )의 이름을 따왔다.

    단순하고 처리 속도가 빨라서 많이 사용되었고, 지금도 시스템 관리 작업을 수행하는 많은 셸 스크립트는 본셸을 기반으로 한다.

    시작 명령어는 sh 이다.

    히스토리, 알리아스, 작업 제어 등 사용자의 편의를 위한 기능을 다양하게 제공하지 못해 이후에 다른 셸들이 등장하게 되었다.

    현재 본 셸은 기존의 오리지널 본 셸이 아니라 대부분 본 셸의 업그레이드 버전이라 할 수 있는 콘 셸이나 배시 셸 같은 다른 셸로 심벌릭 링크가 되어 있다.


    C 셸( C shell )

    캘리포니아 대학교에서 빌 조이( Bill joy )가 개발하였다. 2BSD 유닉스에 포함되어 발표되었다.

    본 셸의 기능을 확장한 것으로 본 셸에는 없던 알리아스나 히스토리 같은 사용자 편의 기능을 포함하고 있다.

    기본 명령어는 csh 이다.

    다양한 사용자 편의 기능을 구현하기 위해 크기가 커지고 처리 속다가 느린 단점이 있으나 편리한 기능 덕분에 일반 사용자 들이 많이 사용하였다.


    콘 셸 ( Korn shell )

    1980년대 중반 AT&T 벨 연구소의 데이비드 콘 ( David Korn ) 이 개발 하였다.

    유닉스 SVR 4에 포함되어 발표되었고, C셸과는 달리 본 셸과의 호환성을 유지할 뿐만 아니라 히스토리, 알리아스 기능 등 C 셸의 특징도 모두 제공하면서 처리 속도도 빠르다는 장점을 가지고 있다. 

    기본 명령어는 ksh이다. 


    배시 셸 ( Bash shell )

    본 셸을 기반으로 개발된 셸로서 1988년 브레인 폭스 ( Brain fox ) 가 개발 하였다.

    본 셸과의 호환성을 유지하면서, C셸, 콘 셸의 편리한 기능도 포함하고 있다. 

    기본 명령어는 bash이다. 모든 버전은 GPL 라이센스에 의거하여 자유롭게 사용할 수 있다.

    배시 셸은 GPL을 따르는 공개 소프트웨어로스 리눅스의 기본 셸로 제공되어 리눅스 셸로도 많이 알려져 있다.


    대시 셸 ( Dash shell )

    본 셸을 기반으로 개발된 셸로서 포직스( POSIX ) 표준을 준수하면서 보다 작은 크기로 개발된 셸이다.

    대시 셸은 암키스트 셸 ( ash, Almquist SHell )의 NetBSD 버전으로 1997년 초에 허버트 슈 ( Herbert Xu ) 가 리눅스에 이식하였고, 2002년에 dash 로 이름이 바뀌었다.

    대시 셸은 기존의 셸에 비해 부팅 시 셸 스크립트를 빠르게 실행시키고 파일 크기가 작으며 신뢰성이 높다.

    반응형

    'Technique > LINUX' 카테고리의 다른 글

    [ 기본정리 ] 파일의 속성  (0) 2016.05.04
    [ 기본정리 ] 셸에서 사용하는 특수문자  (0) 2016.05.04
    [ 기본정리 ] 파일 링크  (0) 2016.05.03
    [ 기본정리 ] 경로  (0) 2016.05.03
    [ 기본정리 ] 디렉토리  (0) 2016.05.03

    댓글

Designed by Tistory.