728x90

우리는 리눅스 즉 서버에 대해서 이야기할 때 쉘이라는 말을 수도 없이 많이 들을 것입니다.

쉘 스크립트로 많은 리눅스 서버는 실행이 되고 활용이 됩니다. 또한 서버에 연동되어 사용되는 Jenkins 등 여러 페이지는 쉘 스크립트를 만들어 활용이 됩니다. 그렇다면 리눅스 프로그래밍에서 가장 기초인 쉘이란 무엇인지 알아보도록 하겠습니다.

쉘(Shell) 이란?

쉘은 리눅스에서 명령어와 프로그래밍을 실행할 때 사용되는 인터페이스입니다.

 

커널(Kernel)과 사용자 간의 다리 역할을 하는 것으로 사용자로부터 명령을 받아 그것을 해석하고 프로그램을 실행하는 역할을 합니다.

 

쉘 환경 화면(Putty)

 

리눅스 & 유닉스에서 많이 사용하는 주요 쉘 종류

구분 위치 비고
sh /bin/sh 대부분의 유닉스와 리눅스에 설치된 쉘
bash /bin/bash 리눅스의 기본 쉘, sh와 호환
ksh /bin/ksh 1980년대 벨 연구소에서 개발, 부동 소수점 계산 가능
csh /bin/csh C와 비슷한 스타일, 스크립트 작성 가능
tcsh /bin/tcsh csh에 커멘드 히스토리 등을 추가 기능 보완

쉘은 유닉스와 리눅스에서 지원하는 명령어들의 집합을 묶어 프로그램화합니다. 그래서 보통 프로그래밍 언어는

그 방식에 따라 컴파일과 인터프리터로 나누지만, 스크립트는 인터프리터 방식이라 각 언어별로 별도의 인터프리터가 존재합니다. 쉘은 쉘 자체 내의 인터프리터가 존재하기 때문에 별도로 설치할 필요가 없습니다.

 

쉘 스크립트 장점

쉘은 텍스트 기반 명령어로 이루어져 있기 때문에 강력한 리다이렉션 기능을 활용할 수 있습니다. 명령에 필요한 값을 받거나 또는 명령의 수행 결과를 파일이나 장비에 전송해 관리자가 원하는 형식의 결과로 재가공하거나 관리 절차는 자동화하는데 유용합니다.

 

* 리다이렉션(Redirection) 연산자 예시

 

리다이렉션 ">" 연산자로

파일이 존재하지 않으면 새로운 파일을 만들고, 같은 파일이 있으면 생성하여 hello.txt로 생성했고

cat을 통해 출력한 예시입니다.

 

 

* 좀 더 자세한 리다이렉션 참고자료

 

https://whitehats.tistory.com/37

장점 정리

 

1. 동일한 작업을 반복하거나 스케줄에 의한 자동화 구현 가능합니다.

 

2. 기본적인 명령어를 시스템 관리자만의 명령어로 보완해 제작, 즉 각 운영체제에서 기본적으로 제공하는 명령어에 따른 결과를 관리자가 원하는 결과로 재가공 가능합니다.

 

3. 특별한 툴 없이 개발 가능하며, 실행 속도가 빠릅니다. 대신에 쉘 스크립트 운영체제에 대한 이해가 선행되어야 합니다.

 

 

 

 

 

 

반응형

+ Recent posts