Forest Gump?

쉘(Shell),스크립트(Script),쉘 스크립트(Shell Script)란? 본문

카테고리 없음

쉘(Shell),스크립트(Script),쉘 스크립트(Shell Script)란?

code1010 2022. 1. 3. 16:02

쉘 스크립트 명령어를 찾던 도중, 쉘과 쉘 스크립트의 정확한 의미를 설명하기 힘들것 같아서 찾아보며

기억하려고 써놓는다. 먼저 쉘을 알기위해선 리눅스라는 운영체제를 먼저 알면 좋을것 같다. 

 

리눅스에서만 쉘이 있는건 아니지만, 서버 작업을 할떄 보통 리눅스 쉘을 많이 이용해서 리눅스에 관련한 간략한 설명부터 하겠다. 

 

리눅스는 핀란드 대학생이던 리누스 토발즈의 취미 생활로 탄생했으며,  OS를 무료로 사용할 수 있다는 특징이 있다.

어떻게 취미 생활로 리눅스를 만들었는지는 진짜 의아하다. OS를 무료로 푼거 보니까 생각부터 다른것 같긴 하네.

 

리눅스에서 최상위(root) 디렉터리는 /로 표시하고 그 하위에 /root, /usr, /etc, /boot, /tmp 등으로 구분하며, 각 디렉터리들은 파티션으로 구성될 수 있다.

 

쉘(Shell)이란 운영체제에서 제공하는 명령을 실행하는 프로그램으로, 쉘 명령어로 그 운영체제를 제어 할 수 있다. 

한마디로 사용자와 운영체제에 있는 인터페이스로, 파일 처리 및 여러 작업들을 하게 해준다. 

모든 운영체제는 쉘을 사용하고 있는데, 크게 텍스트 기반 쉘과 그래픽 기반 쉘로 나눠진다고 한다 .

 

텍스트 기반 쉘은 많은 운영체제의 사용자 인터페이스의 시초로, 오늘날에도 활발하게 사용되고 있다. 

윈도우 키고 CMD 켜서 나오는 친숙한 검은 배경의 명령 프롬포트도 텍스트 기반 명령 줄 쉘이다 .

 

 

스크립트(Script)이란 흔히 프로그래밍 언어라 불리는 JAVA,C++ 등과 비슷하다. 가장 큰 차이는 

컴파일되지 않고 인터프리트 된다는 점이다. 

 

인터프리터 언어라 하면 어디선가 많이 들어봤을텐데, 자바나 C++ 같은 컴파일 언어 말고

Python이나 Ruby등이 대표적인 인터프리터 언어다. 

 

기존 프로그래밍 언어는 명령어를 작성하면 컴파일러를 통해 기계어로 변환되고 그리고 cpu가 그걸 읽는다. 

한줄씩이 아닌 전체를 컴파일 하기 떄문에, 한줄을 고치면 또 다시 이 과정을 반복해야 한다.

하지만 인터프리터 언어는 직접 명령어가 담긴 스크립트를 한줄한줄 실행하면서 기계어 변환까지 한다. 

일반적인 인터프리터 언어는 각 언어용 인터프리터 언어를 설치해야 하지만, 쉘은 인터프리터 자체가 포함되어 있어서 쉘에서 인터프리터 과정을 진행한다. 

 

 

 

쉘 스크립트란 스크립트 방식으로 만든 프로그램으로, 우리 운영체제의 쉘과 연동시키는데에 사용된다. 

그래픽 기반으로 제작된 번쩍번쩍한 프로그램들이 있지만, 일반적으로 텍스트 기반 (윈도우 CMD 생각하면 된다)의 쉘을

사용하는 프로그램을 의미한다. 

 

쉘 스크립트는 프로그래밍 언어로 분류되진 않지만, 다른 언어들과 기능이 비슷하다. 

변수선언, 구조 , 주석처리 등 다른 프로그래밍언어와 비슷한 기능을 해서 큰 규모의 프로그램을 개발 할 수도 있지만,

이경우 효율성에서 떨어져서 잘 안쓴다고 한다. 쉘 스크립트를 사용하기 보단 Ruby ,Python같은 다른 스크립트(인터프리터) 언어를 사용하거나 JAVA같은 컴파일 언어를 쓴다. 

 

다음편에서는 쉘 스크립트 기본 문법을 써봐야겠다.

 

 

Reference 

 

https://vallhalla-edition.tistory.com/31?category=853928