Shell
#Shell
쉘은 사용자로부터 운영체제의 기능이나 서비스를 구현할 수 있는 명령어를 받아서 그 명령어를 해석해서 실행시켜주는 인터페이스다. 즉 터미널을 통해 컴퓨터에 다양한 명령을 입력하고 그걸 실행시켜주는 프로그램을 **쉘(shell)**이라고 한다. 현대의 모든 컴퓨터 터미널은 셸을 내장하고 있기 때문에 터미널과 셸이라는 용어를 구분하지 않고 섞어서 쓰기도 한다.
쉘은 2가지형태로 구분한다. 텍스트명령어형태로 받아서 동작하는
CLI(Command Line Interface)
과 아이콘과 같은 그래픽형태로 동작하는GUI(Graphical User Interface)
가 있다.
#CLI과 GUI의 표준입출력 방식
- CLI
- CLI는 명령어 검색으로 동작하기때문에 CLI의 대표적인 표준입력장치로
키보드
가 해당된다 - 윈도우에서의 CLI 환경으로 명령 프롬프트, 파워셸이 있다.
- mac에서의 CLI 환경으로 bash, zsh이 있다.
- CLI는 명령어 검색으로 동작하기때문에 CLI의 대표적인 표준입력장치로
- GUI
- GUI는 아이콘을 클릭으로 시 스템에게 동작명령을 내리므로 대표적 표준입력장치로는
마우스
가 해당된다. - 윈도우에는 Windows 탐색기(EXPLORER.EXE)라는 GUI 환경의 셸이 있다.
- GUI는 아이콘을 클릭으로 시 스템에게 동작명령을 내리므로 대표적 표준입력장치로는
#쉘 스크립트
유닉스 계열 운영체제의 많은 셸들이 셸 스크립트를 사용하므로, 이를 사용하여 운영체제의 명령뿐만 아니라 응용 프로그램들을 실행하여 많은 작업을 자동화 할 수 있다. GUI가 각 프로그램들을 조합하여 자동화 하기 매우 힘든 데 비해 CLI의 장점이 빛나는 부분. 유닉스 계열의 운영체제는 본래 확장자를 엄격하게 구분하지 않기에 확장자가 없거나 다르게 되어 있는 셸 스크립트 파일도 많지만, 보통 셸 스크립트의 파일은 .sh라는 확장자를 갖는다.
#배치 파일
배치 파일(Batch File)은 마이크로소프트사의 DOS 운영체제인 MS-DOS에서 명령어치는 게 익숙치 않은 사용자를 위해 명령어를 한번에 적어놓고 실행 하게 할 수 있게 만들어서 편리하게 사용자가 타이핑 치는 수고를 줄여 놓은 명령어 스크립트이다. .bat 혹은 .cmd 형식의 확장자 파일을 직접 실행하거나 명령 프롬프트에서 배치 파일의 이름으로 실행할 수도 있다.
예시
@echo off
echo 컴퓨터를 지금 끌까요? (예/아니요)
set /p "shutdown=>"
if %shutdown%== "예" goto shutdown
if not "%shutdown%" == "예" goto not
:not
echo 거부하셨습니다.
pause>nul
exit
:shutdown
shutdown -s -t 0
echo 컴퓨터를 종료합니다.
pause>nul
exit