본문 바로가기

Linux

Shell Script 개요

Shell ScriptLinux(Unix) 계열의 서버 개발이나, 서버의 운용, 유지 보수 등의 업무를 하는데 있어 효율성을 높일 수 있는 유용한 수단이다. 일반 프로그래밍에 비해 요구 기능이 단순한 경우가 많고, 스크립트 언어 자체가 어렵지 않고, 범용성이 있기 때문에 간단한 문법만 익혀도 다양한 기능을 구현할 수 있다.

 

예를 들어, 서버 운용자라면 여러 명령을 일일이 수행하던 것을 스크립트로 작성하여 일괄 수행한다 거나, 원하는 시간에 수행하고, 저장된 결과물을 추후 확인하는 등 유용하게 사용할 수 있고, Database를 운용하는 경우, 원하는 DataSQL문을 통해 UI의 도움 없이도 CSV 등으로 뽑아 낼 수 있다. 즉 내가 원하는 작업을 입맛대로 수행할 수 있는 다양한 옵션을 제공한다고 볼 수 있다

 

최근에는 Python과 같은 Script 언어를 사용하여 C나 Java 못지 않은 복잡할 프로그램을 작성하기도 한다. 서버의 성능과 리소스가 과거와 비교할 수 없을 정도로 향상된 측면과 더불어 구현의 편의성이 Python을 널리 사용할 수 있게 한 이유이겠다. 

 

여기서는 간단한 Script 작성과 작성시 필요한 팁 위주로 내용을 채우려 한다.

 

 

아래에는 Wiki 정의와 tutorialspoint에 소개된 Shell Script에 대한 정의이다. 

 

<Wiki 정의>

셸 스크립트(shell script)는 셸이나 명령 줄 인터프리터에서 돌아가도록 작성되었거나 한 운영 체제를 위해 쓰인 스크립트이다. 단순한 도메인 고유 언어로 여기기도 한다. 셸 스크립트가 수행하는 일반 기능으로는 파일 이용, 프로그램 실행, 문자열 출력 등이 있다.

셸 스크립트라는 말은 유닉스 셸을 위해 쓰인 스크립트를 말하는 반면, COMMAND.COM(도스)과 cmd.exe (윈도) 명령 줄 스크립트는 보통 배치 파일이라고 불리지만 이 글에는 두 개의 속성 모두를 논한다.

.sh라는 파일 확장자를 가진 파일이 특정 종류의 셸 스크립트를 가리키는 것이 보통이지만, 대부분의 셸 스크립트는 파일 확장자를 지니지 않는다.

 

장단점[편집]

장점[편집]

셸 스크립트를 기록하는 것은 다른 프로그래밍 언어의 같은 코드로 쓰인 것보다 훨씬 더 빠른 경우가 많다. 다른 해석 언어에 비해, 셸 스크립트는 컴파일 단계가 없기 때문에 스크립트는 디버깅을 하는 동안 빠르게 실행할 수 있다.

단점[편집]

셸 스크립트를 사용함으로써 몇 가지 중대한 단점이 존재한다.

  1. 한 가지 단점으로는 실행되는 각 명령에 대한 잠재적으로 새로운 하부 프로세스의 수많은 필요에 따라 속도가 느려질 수 있다.
  2. 단순 sh 스크립트는 다양한 종류의 유닉스, 리눅스, BSD 운영 체제, therof 버전, 시스템 유틸리티와 잘 호환된다는 장점이 있지만 더 복잡한 셸 스크립트는 셸, 유틸리티, 다른 필수 요소 간의 약간의 차이가 많은 경우 실패할 가능성이 있다. 래리 월은 다음과 같은 유명한 말을 남겼다: "셸 스크립트보다 셸을 포팅하는 게 더 쉽다"
  3. 이와 비슷하게, 더 많은 복잡한 스크립트들은 셸 스크립트 언어 자체의 제한 안에서 실행할 수 있다. 이러한 제한 때문에 다양한 셸이 문제를 개선할 목적으로 고품질의 코드와 확장을 기록하기 힘들 수 있다.

 

 

 

 

'Linux' 카테고리의 다른 글

VirtualBox Ubuntu 20.04 해상도 설정  (0) 2021.02.07
Shell Script - 변수  (0) 2021.02.06
Shell Script 작성해보기  (0) 2021.02.06
VirtualBox Ubuntu 설치  (0) 2021.02.03
VirtualBox 설치하기  (0) 2021.02.03