쉘(shell), 쉘 스크립트(shell scripts) :: YJcode

쉘(shell)은 운영체제가 사용자의 명령을 읽고 해당하는 명령에 대한 동작을 할 수 있도록 하여 주는 일종의 통역사라고 보면 비교적 쉽게 이해가 될 것이다.

 

이중 몇 가지 유명한 셸이 있다.

 

  • shBourne shell : 현재 많이 쓰이는 쉘 중 가장 오래된 쉘이다. 흔히들 sh라고 표현하고 있으며, 유닉스 7의 표준 쉘이었다. 가장 초반에 나온 쉘이다 보니 다른 쉘에게 영향을 많이 준 쉘이기도 하며, 다른 쉘에서 기본적으로 사용하는 명령어와 공통되는 부분이 많다.
  • cshc shell : csh, 혹은 c쉘이라고많이 불리고, 이름 그대로 C언어와 상당히 유사한 부분이 많다. sh에 비해 유용한 기능이 많이 추가가 되었으며, BSD의 표준 쉘이었으나 모든 유닉스에서 C쉘을 사용한 것은 아니었기에 호환성은 좋지 못한 편이었다.
  • kshkorn shell : sh와 호환성을 유지하며 C쉘의 특징과 비슷한 부분이 많은 쉘이다.
  • bash shell : 현재 데비안 계열을 포함한 거의 대부분의 리눅스에서 사용 중인 현재로써 가장 대중적이고 널리 사용되고 있는 쉘이다. GNU 프로젝트 때 리눅스에 맞춰서 sh를 다시 구현한 쉘로, sh, csh, ksh 모두와 비슷한 대화형 기능이 있다.

 

이러한 쉘은 그냥 사용하면 사용자가 일일이 커널에게 명령을 내리는 불편함이 있기에 쉘 스크립트라는 것을 사용한다.

쉘 스크립트를 사용하면 한번에 한 개씩의 명령이 아니라, 여러 명령을 사용자가 원하는 대로 묶어두고, 원하는 시기에 적절히 자동으로 순차 실행이 되도록, 혹은 조건에 따라 실행이 되도록 할 수 있기 때문에 프로그래밍 언어와 같이 사용할 수 있게 된다.

 

예를 들면, 단순히 쉘만 사용하여 오후 4시경에 컴퓨터를 종료하겠다고 명령을 내리기 위해서는 현재시간을 보고, 오후 4시까지의 시간을 계산하여 그 시간 후에 종료하라고 명령을 내려야 한다.

하지만 쉘 스크립트를 사용한다면, 부트 시퀀스 마지막에 백그라운드로 실행되며, 주기적으로 시간을 체크하고 체크된 시간이 오후 4시를넘어가는 순간 컴퓨터를 종료하도록 스크립트를 작성하여 추가한다면 하나의 자동화를 구성하게 되는 것이다.

+ Recent posts