본문으로 건너뛰기

Shell

#Shell

쉘은 사용자로부터 운영체제의 기능이나 서비스를 구현할 수 있는 명령어를 받아서 그 명령어를 해석해서 실행시켜주는 인터페이스다. 즉 터미널을 통해 컴퓨터에 다양한 명령을 입력하고 그걸 실행시켜주는 프로그램을 **쉘(shell)**이라고 한다. 현대의 모든 컴퓨터 터미널은 셸을 내장하고 있기 때문에 터미널과 셸이라는 용어를 구분하지 않고 섞어서 쓰기도 한다.

쉘은 2가지형태로 구분한다. 텍스트명령어형태로 받아서 동작하는 CLI(Command Line Interface)과 아이콘과 같은 그래픽형태로 동작하는 GUI(Graphical User Interface) 가 있다.

#CLI과 GUI의 표준입출력 방식

  • CLI
    • CLI는 명령어 검색으로 동작하기때문에 CLI의 대표적인 표준입력장치로 키보드가 해당된다
    • 윈도우에서의 CLI 환경으로 명령 프롬프트, 파워셸이 있다.
    • mac에서의 CLI 환경으로 bash, zsh이 있다.
  • GUI
    • GUI는 아이콘을 클릭으로 시스템에게 동작명령을 내리므로 대표적 표준입력장치로는 마우스 가 해당된다.
    • 윈도우에는 Windows 탐색기(EXPLORER.EXE)라는 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