ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • -Linux- 리눅스 쉘(Shell) 의 정의와 종류
    Linux 2019. 8. 14. 17:20

    **Centos 7 기준입니다**

    Linux 의 귀염둥이 담당이자 마스코트  턱스(Tux)

    쉘(Shell) 이란 ?

     1. 쉘(Shell) 은 커널과 사용자 사이를 이어주는 역할을 해준다. 

     2. 쉘(Shell) 은 하나의 명령어 처리기(Command Processor)이다.

     3. 그래서 사용자로부터 명령어를 입력 받아서 해당 명령어를 처리해준다.

     우리가 흔히 사용하는 명령 프롬프트(CMD) 도 하나의 쉘이다.

     그래서 우리는 윈도우에서 IP 가 궁금하면 명령 프롬프트를 켜서 명령어를 수행하면 해당 명령어의 결과를 출력해준다.

     

    IP 가 궁금할 때 사용하는 명령어 'ipconfig'

     

      윈도우에서는 명령 프롬프트가 쉘(Shell) 이다.(강력한 PowerShell 도 있다) 그렇다면

    리눅스에서의 쉘 종류는 ?

     1. Bourne Shell (sh)

         - Bourne Shell 은 1974년 'Stephen Bourne'  (스티브 본) 이 개발하였고, 최초의 쉘(Shell) 이다. 대부분의 리눅스에 기본적으로 설치가 되어있다. 설치 위치는 '/bin/sh' 이다.

     2. C Shell (csh)

         - C Shell 은 1978년 'Bill Joy' (빌 조이) 가 개발한 쉘(Shell) 이다. C Shell 은 Bourne Shell 의 사용성을 높이고, 더욱 한 층 강력하게 만들어졌다. C Shell 은 이름에서 보이다시피 C 언어를 기반으로 만든 Shell 이다. 때문에 강력한 프 로그램 작성 기능을 지니었다. 설치 위치는 '/bin/csh' 이다.

     3. tee-see-Shell (tcsh)

         - tee-see-Shell 은 'Carnegie Mellon University' (카네기 멜런 대학교) 의 학생들이 개발하여 1983년. 소스코드를 게시하였다. 간단하게 설명하면 C Shell 에서 명령 행 완성과 명령 행 편집 기능을 추가한 것이다. 초기 맥 OS X 는 tcsh를 기본 셸로 포함하고 있었다. (하지만 배시 쉘에 밀려버렸다.) 설치 위치는 '/bin/tcsh' 이다.

     4. Z Shell (zsh)

         - Z Shell 은 'Paul Falstad' (폴 폴스타드) 가 1990년 대학교에 재학 중 일 때 첫 버전을 작성하였다. Z Shell 은 지금까지의 수 많은 쉘(Shell) 들의 기능을 머금고 있다. 그렇기 때문에 많은 개선 사항들이 갖추어진 확장형 Bourne Shell 이다. 설치 위치는 '/bin/zsh' 이다.

     5. Bourne-again shell (bash)

         - Bourne-again shell 은 지금 현 시대에 가장 많이 쓰이는 Shell 이라고 생각한다. 줄여서 Bash Shell 은 GNU 프로젝트를 위해 'Brian Fox' (브라이언 폭스) 가 작성한 쉘(Shell) 이다. GNU 운영체제와 리눅스, 맥 OS 등 기본 쉘로 채택 되어있다. (사실상 모든 리눅스가 기본으로 Bash Sehll 만을 사용한다...)  C Shell 과 Bourne Shell 의 기능들이 많이 포함 되어 있다. 대부분 Shell Script 라고 검색을 하면 기준이 십중팔구는 Bash Shell 로 작성 되어 있다. 그만큼 자료가 방대면서 배우기 쉽고, 강력하다는 증거이다. 설치 위치는 '/bin/bash' 이다.

     

    이 외에도 많은 쉘이 존재한다.

     

    내 리눅스 쉘은 ?

     이제 자신의 리눅스 쉘을 한 번 확인해 보자.

    로그인 직후 화면

     부팅을 하고 로그인을 하면 대충 사진과 같은 화면과 비슷 할 것이다. 아무 것도 모르는 상태에서 이 화면만 보고는 어떤 Shell 을 사용하는지 알 수 없다. 여기서 

    echo $SHELL

     'echo $SHELL'  

     명령어를 치면 현재 사용 중인 Shell 위치를 출력해준다.

     대부분의 리눅스 계열들이 기본적으로 Bash Shell 을 탑재하고 있다.

     이번 포스트에서는 리눅스 쉘의 정의와 종류들을 설명했다. 다음 포스트에서는 간단한 Bash Shell 의 사용 법을 포스트하겠다.

    'Linux' 카테고리의 다른 글

    Linux Ping 차단  (1) 2019.12.27

    댓글

Designed by Tistory.