우리는 리눅스 즉 서버에 대해서 이야기할 때 쉘이라는 말을 수도 없이 많이 들을 것입니다.
쉘 스크립트로 많은 리눅스 서버는 실행이 되고 활용이 됩니다. 또한 서버에 연동되어 사용되는 Jenkins 등 여러 페이지는 쉘 스크립트를 만들어 활용이 됩니다. 그렇다면 리눅스 프로그래밍에서 가장 기초인 쉘이란 무엇인지 알아보도록 하겠습니다.
쉘(Shell) 이란?
쉘은 리눅스에서 명령어와 프로그래밍을 실행할 때 사용되는 인터페이스입니다.
커널(Kernel)과 사용자 간의 다리 역할을 하는 것으로 사용자로부터 명령을 받아 그것을 해석하고 프로그램을 실행하는 역할을 합니다.
리눅스 & 유닉스에서 많이 사용하는 주요 쉘 종류
구분 | 위치 | 비고 |
---|---|---|
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. 특별한 툴 없이 개발 가능하며, 실행 속도가 빠릅니다. 대신에 쉘 스크립트 운영체제에 대한 이해가 선행되어야 합니다.
'네트워크 > 리눅스(Linux)' 카테고리의 다른 글
[Linux] 리눅스 운영체제(OS) 확인 (CentOS Ubuntu 확인) (0) | 2021.08.31 |
---|---|
리눅스&window mac 주소 확인 (0) | 2021.06.23 |
실시간 서버 상태 Check(Top 명령어) (0) | 2021.06.08 |
초보자들을 위한 리눅스(Linux) 명령어 BEST 10 (0) | 2020.08.14 |
PuTTY 설치 및 인증키로 접속 (0) | 2020.08.12 |