ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Linux]쉘 스크립트(Shell Script)란?
    programming/Linux 2021. 11. 14. 22:38

    리눅스 계열의 환경에서 개발을 업무를 수행하는 데에 있어서 Shell Script에 대한 이해와 능숙하게 다룰 수 있는 스킬이 있으면 그 점은 굉장한 경쟁력이 됩니다. 저는 입사 초기에 서버에서 업무를 수행하면서 Shell Script를 익혔지만  Shell Script조금 배우고 입사를 했으면 업무의 생산성이 크게 증가했을 텐데라는 아쉬움이 남기도 합니다. 

    오늘부터 Shell Script 공부하면서 Shell Script에 대해 포스팅을 해 보록 하겠습니다. 

     

     

    쉘 스크립트(Shell Script)

    쉘 스크립트는 리눅스/유닉스에서 실행하기 위해 고안된 스크립트입니다.여러 명령을 작성하여, 반복적이고 단순한 형태의 작업을 프로그래밍하고 실행 가능한 파일 형태로 저장하여 사용할 수 있도록 합니다.

     

    Bourne Shell -sh 

    Bourne Shell(sh)는 유닉스 쉘의 오리지널이라고 할 수 있습니다.  AT&T 벨 연구소의 스티븐 본(Stephen Bourne)이 개발했고 1977년에 처음으로 유닉스 버전 7에 포함되었다. 본의 이름을 따 Bourne Shell이라고 부르며 오리지널 쉘인 만큼 모든 유닉스 운영체제에서 사용할 수 있으나 부족한 기능들이 많습니다. 그중 가장 큰 단점은 상호 대화식 방식을 취하고 있지 않는 것입니다. 

     

    쉘의 기능

    • 사용자와 커널 사이에서 명령을 해석해 전달하는 명령어 해석기 기능이 있습니다.
    • 쉘 자체 내에 프로그래밍 기능이 있어서 프로그램을 작성할 수 있습니다. 쉘 프로그래밍 기능을 이용하면 여러 명령을 사용해 반복적으로 수행하는 작업을 하나의 프로그램으로 제작할 수 있습니다. 쉘 프로그램을 쉘 스크립트라고 부릅니다
    • 초기화 파일 기능을 이용해 사용자의 환경을 설정할 수 있습니다. 

     

    쉘의 종류

    현재 가장 리눅스/유닉스에서 가장 많이 사용되는 5가지 오픈 소스 쉘들이 있습니다.

    출처:https://www.tecmint.com/

    현재 가장 리눅스/유닉스에서 가장 많이 사용되는 5가지 오픈 소스 쉘들이 있습니다. 간단히 한번 알아보겠습니다.

    1.  Bash Shell

    Bash는 Bourne Again Shell의 약자이며 1989년에 출시되어 지금까지도 대부분의 리눅스 계열의 운영체제에서 많이 사용되는 기본 쉘입니다.  sh 단점을 보완하여 프로그래밍 및 대화식 사용을 개선하였습니다. 

    •  
    • Command line editing
    • Job Control
    • Unlimited size command history
    • Shell Functions and Aliases
    • Unlimited size Indexed arrays
    • Integer arithmetic in any base from two to sixty-four

     

    2. Tcsh.Csh Shell

    Tcsh은 Berkely Unix csh에서 파생되어 초기 유닉스 시스템에서 사용되어 가장 긴 역사를 가지고 있습니다. C언어 문법과 매우 유사한 특징을 가지고 있습니다. 

    •  
    • C like syntax
    • Command-line editor
    • Programmable word and filename completion
    • Spelling correction
    • Job control

     

    3.Ksh Shell

    Korn shell, Ksh은 1983년 AT&T의 벨 연구소에서 근무하던 데이비드 콘이 설계하고 개발하였습니다.  sh(Bourne Shell)을 확장해서 확장해서 개발하였며, 벨 연구소 사용자의 요청으로 Csh Shell의 특징을 모두 제공하면서 처리속도가 빠르다는 장점을 가지고 있다.

     

    4. Zsh Shell

    Zsh은 Unix / GNU Linux Shell의 많은 기능을 통합하여 설계된 Shell로서 1990년도에 출시된 강력한 Shell입니다. 다양한 확장 스크립트 및 문법을 제공하며, 개발자들 사이에서 많이 사용되는 Shell이다. 위에 나열한 모든 쉘들의 장점들을 포함하여 만든 쉘이라고 생각하시면 될 것 같습니다. 

    • Filename generation
    • Startup files
    • Login/Logout watching
    • Closing comments
    • Concept index
    • Variable index
    • Functions index
    • Key index and many more that you can find out in man pages

    5. Fish Shell

    Fish는 “friendly interactive shell”을 의미하며 2005년에 개발되었습니다. Fish을 사용하면 구문 강조, 자동 제안 및 탭 완성 등과 같은 기능을 제공하며, 사용하기 위해 위에서 설명한 Shell 종류보다 간편하고 복잡한 구성이 필요 없다는 특징을 가지고 있습니다. 개인적으로 ㅅFash Shell을 쓰면서 느꼈던 점은 쉘계의 파이썬 같은 느낌이었습니다

    • Man page completions
    • Web based configuration
    • Auto-suggestions
    • Fully scriptable with clean scripts
    • Support for term256 terminal technology

     

    현재 OS에 설치된 쉘 확인하기 

     (base)  ✘ eunchan⚡️ cat /etc/shells
    /bin/bash
    /bin/csh
    /bin/dash
    /bin/ksh
    /bin/sh
    /bin/tcsh

    cat /etc/shells 을 입력하면 현재 사용할 수 있는 쉘들이 보입니다 

     

    사용하고 있는 쉘 확인하기

    (base)  ✘ eunchan⚡️ echo $SHELL
    /bin/zsh

    echo %SHELL 을 입력하면 현재 사용하고 있는 쉘이 보입니다. 저는 zsh 쉘을 사용하고 있습니다.

    다음 포스팅에서는 쉘 문법에 기초에 대해서 포스팅하도록 하겠습니다!

    'programming > Linux' 카테고리의 다른 글

    [Linux] ldconfig  (1) 2023.03.06
    [Linux] tar 와 tar.gz 차이 압축, 압축 해제  (0) 2022.07.08
    [Linux]사용자 위주의 모니터링 도구 htop  (0) 2021.11.12
Designed by Tistory.