Shell   쉘, 셸

(2024-07-30)

Bourne shell, Korn shell, C shell, bash, 명령어 해석기


1. 쉘 (Shell) 이란?

  ㅇ 영어 뜻으로는,
     - 양파 껍질 처럼 껍데기를 의미

  ㅇ [화학]  
     - 例) 원자 껍질(Atomic Shell) 등

  ㅇ [컴퓨터]  
     - 쉘(Shell)은, 
         . 운영체제 커널과 사용자 간의 인터페이스 역할(다리 역할) 수행하며,
            .. 텍스트 기반의 명령어를 입력할 수 있는 프롬프트를 제공하는,
            .. `명령어 해석기`를 말함
         . 즉, 사용자가 프로그램을 실행하고, 파일을 관리하며, 프로세스를 감독할 수 있게,
            .. 도와주는 특수한 인터랙티브(상호작용) 유틸리티 임

     - 주요 기능
        . 명령어 해석 기능 (Command Line Interpreter)        ☞ CLI 참조
           .. 사용자가 키보드를 통해 입력시킨, 명령어 라인을 읽고서,
           .. 필요한 시스템 기능을 실행시키거나, 
           .. 이를 다른 프로그램에게 넘겨서 실행시키는,
           .. 작은 프로그래밍 환경 처럼 행동하는 명령어 해석기
        . 프로그래밍 기능 : 쉘 스크립트 등
        . 사용자 환경 설정 기능 : 쉘 변수, 환경 변수2. 운용체제별 쉘

  ㅇ [윈도우즈]  윈도우즈 쉘
     - 특징
        . 윈도우즈커맨드 라인 유틸리티(command-line Utilities)들을 실행하고 도움을 주는,
        . 커맨드 라인 쉘(command-line Shell)
     - 크게, Command Shell(cmd) 과 PowerShell 이 있음
        . Command Shell(cmd) : command.exe를 통해 비교적 간단하게 윈도우 명령어들을 실행 가능
        . PowerShell : 태스크 위주의 커맨드 라인 쉘 (프로그래밍 가능 스크립트 언어)
           .. 강력한 유닉스 쉘에 대응하기 위해 MS社 개발

  ㅇ [Unix/Linux]  유닉스 쉘
     - 유닉스에서 사실상 쉘은,
        . 커널의 일부분이 아니라 일종의 사용자 프로세스로써,
        . 개인화된 쉘이 만들어지기도 함
     - 시스템 관리자는, 
        . 사용자 계정을 부여(사용자의 등록)할 때, 해당 사용자에게 적정한 쉘을 선택하여 줌
        . 사용자가 로그인을 하면, 정해진 쉘이 자동적으로 실행됨
     - 특징 : 간결성, 강력함


3. [Unix/Linux]  쉘 종류

  ㅇ Bourne shell (sh)
     - 최초의 쉘, 대부분의 쉘이 이로부터 파생
        . 위치 : /bin/sh
           .. 한편, 리눅스에서, /bin/sh은 실제 쉘로의 포인터 역할을 함
        . 프롬프트 : $ 
        . 사용 버젼 : UNIX version 7
        . 단점 : 별칭이나 히스토리 등의 기능이 없음
     * 1979년 AT&T社 벨연구소의 Stephan Bourne에 의해 만들어짐

  ㅇ Korn shell (ksh)
     - Bourne 쉘의 상위 버젼. Bourne 쉘 및 C 쉘의 좋은 특성들을 결합. 
        . 위치 : /bin/ksh
        . 프롬프트 : $
        . 사용 버전 : System V 계열
     * C 프로그래밍 언어에서 제공하는 것과 같은 고급 프로그래밍 기능을 지원
     * 1983년 AT&T社 벨연구소의 데이비드 콘(David Korn)이 개발

  ㅇ C shell (csh)
     - 대화형 작업에 강점을 지님
        . 위치 : /bin/csh
        . 프롬프트 : %
        . 사용 버젼 : 4.3 BSD
     * 통상, 대형 검퓨터용 유닉스에서, C 쉘 또는 TC 쉘(tcsh, C 쉘의 확장본)이 보편적으로 사용됨
     * 1978년 버클리 대학의 빌 조이가 개발

  ㅇ Bourne Again shell (bash) 
     - Bourne shell 문법을 모두 만족하며, 동시에 C shell 일부분도 포함한, 보다 발전된 쉘
        . 위치 : /bin/bash, /bash/sh
           .. /bin/sh : 심볼릭 링크로써, 기본 쉘과 연결시켜줌          ☞ 쉘의 확인 및 변경 참조
        . 프롬프트 : $
        . 사용 버젼 : Linux
     * 현재 리눅스에서 기본으로 주어지는 표준 셸   
        . root 계정 사용자가 직접 사용하는 쉘
     * 1989년 Brian Fox에 의해 만들어짐

  ㅇ Dash (The Debian Almquist shell)
     - 가능한 작게 구현한 셸로써, 빠른 작업 수행이 특징
        . 명령어 줄 편집이나 명령어 히스토리 기능을 제공하지 않지만, 실행 속도 빠름
     * 현재 데비안 및 우분투 계열의 리눅스에서, 기본 셸
     * 2002년에 처음 출시된 쉘


4. [Unix/Linux]  쉘 사용하기

  ※ ☞ 쉘 활용 참조
     - 기본 쉘(로그인 쉘) 선택 및 확인 : 例) echo $SHELL $BASH_VERSION
     - 쉘의 기동
     - 쉘의 변경 및 확인 : chsh
     - 쉘의 명령어 종류 
        . 단축 명령(에일리어스), 쉘 예약어, 함수, 쉘 내부 명령어, 쉘 외부 명령어 

  ※ ☞ 쉘 스크립트 참조
     - 샤방, 쉘 변수 등

  ※ ☞ 쉘 환경변수 참조
     - GROUP, HOSTNAME, PATH, PWD, TMOUT 등

[UI]1. UI, UX   2. CUI (명령행)   3. GUI (그래픽)   4. 셸 (shell)   5. 프롬프트   6. 윈도 매니저   7. X 윈도  

[쉘 (Shell)]1. 쉘 (Shell)   2. 셀 활용   3. 쉘 스크립트   4. 프롬프트   5. 쉘 환경 변수   6. 쉘 내부 명령어  

  1. Top (분류 펼침)      :     1,594개 분류    6,533건 해설

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 (차재복)