맨위로가기

명령어 인터프리터

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

명령어 인터프리터는 사용자 또는 명령어 파일로부터 명령어를 읽어 시스템 호출로 변환하여 실행하는 프로그램이다. 운영체제 커널에 포함되지 않으며, 명령줄 인터페이스를 통해 시스템을 제어하는 데 사용된다. 유닉스 셸, cmd.exe, PowerShell 등이 있으며, 스크립트 언어 기능을 갖춰 자동화에도 활용된다.

더 읽어볼만한 페이지

  • 셸 - 파워셸
    파워셸은 마이크로소프트에서 개발한 작업 자동화 솔루션으로, 명령줄 셸과 스크립트 언어의 기능을 결합하여 윈도우 시스템 관리를 위해 설계되었으며, .NET 프레임워크 기반의 객체 지향적 특징을 갖고 다양한 플랫폼에서 자동화 스크립트 작성 및 실행, 시스템 구성 관리 등에 활용된다.
  • 셸 - COMMAND.COM
    COMMAND.COM은 MS-DOS 운영체제에서 명령줄 인터페이스를 제공하는 명령어 해석기로, 파일 관리 및 프로그램 실행 등의 작업을 수행하며, 윈도우 9x에서 MS-DOS 호환성을 위해, FreeDOS에서는 핵심 구성 요소로 사용된다.
  • 명령줄 소프트웨어 - 어드밴스트 패키징 툴
    어드밴스트 패키징 툴(APT)은 데비안 계열 리눅스 배포판에서 패키지를 관리하는 도구 모음으로, 패키지 설치, 삭제, 업데이트, 업그레이드 기능을 제공하며, 특히 패키지 간 의존성을 자동 관리하는 특징을 가진다.
  • 명령줄 소프트웨어 - FFmpeg
    FFmpeg은 오디오 및 비디오 데이터를 다루는 자유 소프트웨어 프로젝트로, 다양한 코덱과 형식을 지원하며 멀티미디어 응용 프로그램에 활용되고 2011년 Libav로 포크되기도 했으나 통합 과정을 거쳤다.
  • 사용자 인터페이스 - 로그인
    로그인은 특정 페이지, 웹사이트 또는 응용 프로그램에 접근하기 위해 사용자 이름과 암호를 입력하여 시스템에 접근하는 절차이며, 1960년대 시분할 시스템과 1970년대 BBS에서 사용되기 시작했다.
  • 사용자 인터페이스 - 키넥트
    키넥트는 마이크로소프트에서 개발한 동작 인식 장치로, 적외선 프로젝터와 센서를 사용하여 사용자의 움직임과 음성을 인식하며, Xbox용으로 출시되어 큰 인기를 얻었지만 개인정보 보호 문제 등으로 판매가 부진하여 생산이 중단되었고, 다양한 분야에서 활용되며 기술적 가치를 인정받아 클라우드 기반 Azure Kinect로 이어졌으나 단종되었다.
명령어 인터프리터
명령어 인터프리터
일반 정보
종류인터프리터
다른 이름명령어 줄 인터프리터
콘솔
개요
정의텍스트 기반 인터페이스를 통해 운영 체제와 상호 작용하는 프로그램
기능명령어 실행
스크립트 실행
예시sh
bash
zsh
PowerShell
cmd.exe
상세 정보
명령어 처리명령어 구문 분석
명령어 실행
스크립트 처리스크립트 구문 분석
스크립트 명령어 순차적 실행
특징명령어 자동 완성
명령어 기록
파이프라인
리다이렉션
활용
용도시스템 관리
소프트웨어 개발
자동화
장점빠른 명령어 실행
스크립트를 통한 자동화
원격 서버 관리
단점복잡한 명령어 구문
스크립트 작성의 어려움
추가 정보
관련 개념터미널 에뮬레이터
GUI
API
참고 자료운영체제 커널과 상호작용
명령어 라인 인터프리터
일반 정보
종류인터프리터
다른 이름콘솔
개요
정의텍스트 기반 인터페이스
기능명령어 실행
예시bash
zsh
PowerShell
cmd.exe
상세 정보
명령어 처리명령어 구문 분석 및 실행
스크립트 처리스크립트 명령어 순차적 실행
특징자동 완성
명령어 기록
파이프라인
리다이렉션
활용
용도시스템 관리
소프트웨어 개발
자동화
장점빠른 명령어 실행 및 자동화
단점복잡한 명령어 구문

2. 특징

명령어 인터프리터는 사용자 또는 명령어 파일로부터 명령어를 읽어들인 후, 명령어를 하나 이상의 시스템 호출로 변환함으로써 그것을 실행한다. 그에 따라 명령어 인터프리터는 실행에 제약을 받기 때문에, 커널에 포함되지 않는다.

3. 시스템 호출

명령어 인터프리터 또는 셸을 통해 입력된 명령을 수행하는 과정에서 새로운 프로세스를 시작하기 위해서는 시스템 호출을 해야 한다. 예를 들어 유닉스 시스템에서는 새로운 프로세스를 시작하기 위해 exec 시스템 호출 이후 fork 시스템 호출이 뒤따른다. exec 호출이 호출 프로세스 위로 다른 실행가능한 새로운 프로세스를 띄우는 동안, fork 호출은 현재 실행 중인 프로세스를 복제한다.

4. 사용자 인터페이스로서의 명령줄

명령줄 인터페이스(CLI)는 유효하고 간결한 명령을 통해 사용자가 시스템을 효율적으로 제어할 수 있게 한다. 사용자는 명령어와 파라미터, 구문을 기억해야 한다.

초기 컴퓨터 환경에서는 자원 제약으로 인해 문자 터미널을 통한 조작이 주를 이루었다. 그래픽 사용자 인터페이스(GUI) 발전 이후에도 유닉스 계열의 명령줄 이나 NT 계열 이후 Windows의 cmd.exe 등은 GUI 환경에서 복잡한 작업을 간결하게 처리하는 데 사용되며, GUI와 상호 보완적인 관계를 유지한다.

시스코 시스템즈 같은 라우터, 3D CAD 소프트웨어 Rhinoceros 3D 등 특정 분야에서는 CLI가 주요 인터페이스로 활용된다.

5. 스크립트 언어

많은 명령줄 인터프리터는 스크립트 언어적 기능을 갖추고 있어, 반복 작업을 자동화하고 효율성을 높인다. 에서의 셸 스크립트처럼, 외부 파일에 묶어 명령을 실행할 수 있는 기능을 제공하는 명령줄 인터프리터도 있다.

Python, Ruby 등 많은 스크립트 언어 처리계는 내장 또는 외장 명령줄 인터프리터를 통해 상호작용적 개발 환경(REPL)을 제공한다. 예를 들어 Python의 경우, CPython은 내장 간이 명령줄 인터프리터를 제공하며, 외장으로 더 강화된 환경을 제공하는 IPython이 있다. Ruby의 경우, CRuby (MRI)는 내장 명령줄 인터페이스를 가지고 있지 않지만, 표준 첨부된 irb 명령어 (Interactive Ruby)가 표준 명령줄 인터프리터 역할을 수행한다.

BASIC과 같이, 언어 자체가 명령줄 인터프리터로부터의 명령으로 조작되도록 설계된 경우도 있다. LISP 등에서는 "read", "eval", "print" 루틴을 조합하여 REPL을 구현할 수 있다.

6. 예시

;UNIX 및 UNIX 계열

유닉스 셸유닉스유닉스 계열 OS에서 사용되는 명령어 인터프리터이다. Bash, Bourne 셸, C 셸 등 다양한 종류가 있으며, 자세한 내용은 유닉스 셸 항목에서 확인할 수 있다. 텍스트 편집기인 Emacs는 명령어 인터프리터 기능을 갖추고 있으며, Windows 환경에서도 Cygwin을 설치하여 유닉스 셸을 사용할 수 있다.

;macOS

macOS (Mac OS X / OS X)는 BSD UNIX를 기반으로 하며, 터미널이라는 UNIX 터미널 에뮬레이터 화면을 열어 UNIX 셸을 시작한다.

처음에는 tcsh가 표준 셸이었지만, 버전 10.3 (Panther)에서 bash, 버전 10.15 (Catalina)에서 zsh로 변경되었다.

Mac OS X의 터미널 화면 (bash가 작동하는 상태)


과거 Classic Mac OS는 모든 것을 GUI로 조작한다는 설계 사상으로 인해 명령어 인터프리터가 기본적으로 없었다. 1988년부터 1995년까지 Macintosh에서 System 7 (Mac OS 7)과 함께 작동하는 A/UX라는 UNIX OS를 별도 구매하여 설치하면 CommandShell을 통해 셸을 사용할 수 있었다.

;마이크로소프트사가 개발에 관여한 경위가 있는 것

Windows PowerShell 1.0의 화면

:: 또한 Microsoft Windows의 메뉴 항목이나 화면 제목으로는, 영어 버전에서는 "Command Prompt", 일본어 버전에서는 "コマンド プロンプト"라고 표시되므로, 그 호출 방식도 친숙하다(일반적인 기술 용어로서의 명령 프롬프트와는 별개의 것이다).

  • Command.com ― MS-DOS, Windows 9x 계열
  • 4DOS/4OS2/4NT ― DOS (MS-DOS), OS/2, Windows NT
  • Windows PowerShell ― Windows XP/Windows Server 2003 이후. .NET Framework가 필요하다. Windows 7 이후는 표준 탑재.
  • PowerShell ― Windows PowerShell을 .NET으로 재구현한 것. 크로스 플랫폼.
  • Windows 복구 콘솔 ― Windows 2000, Windows XP, Windows Server 2003


;IBM의 머신 (및 이를 모방한 머신)의 것

  • Control Language/Control Language영어 (CL) ― OS/400, 는 "IBM i"라고 (또) 불린다.
  • iSeries QSHELL ― IBM OS/400
  • Job Control Language (JCL) ― OS/360, z/OS
  • TSO ― MVS


;기타

더 이상 사용되지 않는 오래된 머신의 예. PDP-11에서 작동했던 RT-11라는 OS를, 사진의 VT100이라는 단말기로 조작하여, help 명령을 입력하여 얻어진 화면 표시。

  • rc Shell ― Plan 9
  • clig ― Tcl/C
  • Command Line Interpreter (CLI) / Amiga Shell ― AmigaOS
  • CCPCP/M
  • CMS ― VM/CMS
  • FreeCOM ― FreeDOS
  • crosh ― ChromiumOS/ChromeOS

6. 1. 유닉스 및 유닉스 계열

유닉스 셸유닉스유닉스 계열 OS에서 사용되는 명령어 인터프리터이다. Bash, Bourne 셸, C 셸 등 다양한 종류가 있으며, 자세한 내용은 유닉스 셸 항목에서 확인할 수 있다. 텍스트 편집기인 Emacs는 명령어 인터프리터 기능을 갖추고 있으며, Windows 환경에서도 Cygwin을 설치하여 유닉스 셸을 사용할 수 있다.

macOS는 BSD UNIX를 기반으로 하며, 터미널을 통해 UNIX 셸을 시작할 수 있다. 표준 셸은 tcsh에서 bash를 거쳐 zsh로 변경되었다.

6. 2. macOS

macOS (Mac OS X / OS X)는 BSD UNIX를 기반으로 하며, 터미널이라는 UNIX 터미널 에뮬레이터 화면을 열어 UNIX 셸을 시작한다.

처음에는 tcsh가 표준 셸이었지만, 버전 10.3 (Panther)에서 bash, 버전 10.15 (Catalina)에서 zsh로 변경되었다.

과거 Classic Mac OS는 모든 것을 GUI로 조작한다는 설계 사상으로 인해 명령어 인터프리터가 기본적으로 없었다.[2][3] 1988년부터 1995년까지 Macintosh에서 System 7 (Mac OS 7)과 함께 작동하는 A/UX라는 UNIX OS를 별도 구매하여 설치하면 CommandShell을 통해 셸을 사용할 수 있었다.

6. 3. 마이크로소프트 관련

마이크로소프트사가 개발에 관여한 경위가 있는 것으로는 다음과 같은 것들이 있다.

  • cmd.exe ― OS/2, Windows NT 계열에서 사용된다. Microsoft Windows의 메뉴나 화면 제목으로는 "Command Prompt"로 표시된다.
  • Command.com ― MS-DOS, Windows 9x 계열에서 사용된다.
  • 4DOS/4OS2/4NT ― DOS, OS/2, Windows NT에서 사용된다.
  • Windows PowerShell ― Windows XP/Windows Server 2003 이후 버전에서 사용되며, .NET Framework가 필요하다. Windows 7 이후 표준 탑재되어있다.
  • PowerShell ― Windows PowerShell을 .NET으로 재구현한 것으로, 크로스 플랫폼이다.
  • Windows 복구 콘솔 ― Windows 2000, Windows XP, Windows Server 2003에서 사용된다.
  • IBM PC DOS


6. 4. IBM 관련


  • Control Language/Control Language영어 (CL) ― OS/400(현재 IBM i)
  • iSeries QSHELL ― IBM OS/400
  • Job Control Language (JCL) ― OS/360, z/OS
  • TSO ― MVS

6. 5. 기타

rc Shell는 Plan 9에서 사용된다. clig는 Tcl/C 환경에서 사용되는 명령어 인터프리터다. Command Line Interpreter (CLI) / Amiga Shell은 AmigaOS에서 사용된다. CCPCP/M 운영 체제의 명령어 인터프리터이다. CMS는 VM/CMS 환경에서 사용된다. FreeCOM은 FreeDOS의 명령어 인터프리터이다. crosh는 ChromiumOS/ChromeOS에서 사용된다.

참조

[1] 웹사이트 interpreterの意味・使い方・読み方|英辞郎 on the WEB https://eow.alc.co.j[...]
[2] 웹사이트 Wow, the fact that Mac OS Classic did not even have a command line interface really baffles me. https://news.ycombin[...]
[3] 웹사이트 How can I open the Terminal on an iMac G3 (Mac OS 8.5)? https://superuser.co[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com