명령줄 인터페이스

Command-line interface
GNOME 터미널 3, Fedora 15의 샘플 Bash 세션 스크린샷
Windows Vista에서 실행되는 Windows PowerShell 1.0 스크린샷

명령줄 인터프리터 또는 명령줄 프로세서는 명령줄 인터페이스(CLI)를 사용하여 텍스트 행 형식으로 사용자로부터 명령을 수신합니다.이를 통해 환경에 대한 매개 변수를 설정하고 실행 파일을 호출하며 수행할 작업에 대한 정보를 제공할 수 있습니다.경우에 따라서는, 유저 또는 이전의 실행 파일에 의해서 확립된 조건에 근거해 기동됩니다.이러한 접근은 1960년대 중반부터 컴퓨터 단말기에 의해 처음 제공되었다.이를 통해 펀치 카드 또는 기타 입력 방식으로는 사용할 수 없는 대화형 환경이 제공되었습니다.

오늘날 많은 사용자가 그래픽 사용자 인터페이스와 메뉴 중심의 상호 작용에 의존하고 있습니다.그러나 일부 프로그래밍 및 유지관리 태스크에는 그래픽 사용자 인터페이스가 없고 명령줄을 사용할 수 있습니다.

명령줄 인터페이스 대신 텍스트 기반 사용자 인터페이스 메뉴(예: IBM AIX SMIT), 키보드 바로 가기 및 포인터 중심의 다양한 데스크톱 비유(일반적으로 마우스로 제어)가 있습니다.예를 들면, Microsoft Windows, DOS Shell, 및 마우스 시스템의 전원 패널이 있습니다.커맨드 라인 인터페이스는, 커서 어드레싱을 사용해 표시 화면에 기호를 배치하는 화면 지향의 텍스트 베이스의 유저 인터페이스도 가능한 단말 장치에 실장되는 경우가 많습니다.

명령줄 인터페이스를 갖춘 프로그램은 일반적으로 스크립트를 통해 자동화하기가 더 쉽습니다.

많은 소프트웨어 시스템이 제어 및 작동을 위한 명령줄 인터페이스를 구현합니다.여기에는 프로그래밍 환경과 유틸리티 프로그램이 포함됩니다.

그래피컬 사용자 인터페이스와의 비교

아이콘과 창을 갖춘 그래피컬 사용자 인터페이스(GEM 1.1 Desktop)

그래피컬 사용자 인터페이스에 비해 명령줄 인터페이스는 구현에 필요한 시스템리소스가 적습니다.명령어 옵션은 각 명령줄에서 몇 글자로 제공되므로 경험이 많은 사용자는 옵션에 쉽게 액세스할 수 있습니다.자주 사용하는 시퀀스를 저장하기 위한 행 편집 및 이력 메커니즘을 통해 반복 작업의 자동화가 간소화됩니다.이는 파라미터 및 가변 옵션을 사용할 수 있는 스크립트 언어까지 확장될 수 있습니다.명령줄 이력을 유지하여 명령어를 검토 또는 반복할 수 있습니다.

명령줄 시스템에서는 사용자가 참조할 수 있도록 종이 또는 온라인 매뉴얼이 필요할 수 있습니다.단, "도움말" 옵션을 사용하면 명령어 옵션을 간결하게 확인할 수 있습니다.명령줄 환경에서는 GUI에서 볼 수 있는 다양한 글꼴이나 확장된 편집 창 등의 그래픽 기능이 제공되지 않을 수 있습니다.그래픽 사용자 인터페이스의 아이콘드롭다운 메뉴에 비해 매뉴얼을 참조하지 않고 사용 가능한 모든 명령 및 옵션에 익숙해지기는 어려울 수 있습니다.

종류들

운영 체제 명령줄 인터페이스

A/UX 3.0.1에 탑재된 Apple 컴퓨터의 CommandShell

운영체제(OS) 명령줄 인터페이스는 보통 운영체제와 함께 제공되는 개별 프로그램입니다.이러한 텍스트 인터페이스를 구현하는 프로그램을 명령줄 인터프리터, 명령어 프로세서 또는 셸이라고 합니다.

명령줄 인터프리터의 예로는 OpenVMSRSX-11에서의 DEC의 DIGITAL Command Language(DCL; 디지털명령어 언어), 다양한 Unix (sh, ksh, csh, tcsh, zsh, Bash 등), CP/MCCP, DOS의 명령어가 있습니다.COM, OS/2 Windows CMD.EXE 프로그램. 후자의 그룹은 주로 DEC의 RSX-11 및 RSTS CLI를 기반으로 합니다.대부분의 operating system에서는, 디폴트의 셸 프로그램을 대체 프로그램으로 교환할 수 있습니다.예를 들어 DOS용 4DOS, OS/2용 4OS2, Windows용 4NT / Take Command 이 있습니다.

'쉘'이라는 용어는 명령줄 인터프리터를 설명하는 데 자주 사용되지만 엄밀하게 말하면 '쉘'은 완전한 그래픽 지향 프로그램을 포함하여 사용자 인터페이스를 구성하는 모든 프로그램일 수 있습니다.예를 들어 기본 Windows GUI는 EXPLORER라는 이름의 셸 프로그램입니다.EXE, SHEL=SHEL에 정의되어 있습니다.WIN의 EXE 행INI 컨피규레이션파일이러한 프로그램은 셸이지만 CLI는 아닙니다.

응용 프로그램 명령줄 인터페이스

명령줄 인터페이스를 갖춘 GNU Octabe의 GUI

(운영체제가 아닌) 애플리케이션 프로그램에도 명령줄 인터페이스가 있을 수 있습니다.

응용 프로그램에서는 다음 3가지 주요 유형의 명령줄 인터페이스 메커니즘이 모두 지원되지 않을 수 있습니다.

  • 파라미터:대부분의 명령줄 인터페이스는 프로그램이 실행될 때 추가 정보를 전달하는 수단을 지원합니다.
  • 인터랙티브 명령줄 세션: 프로그램이 실행 후 운영자에게 명령어를 입력할 수 있는 독립된 수단을 제공할 수 있습니다.
  • 프로세스 간 통신:대부분의 운영 체제는 프로세스 간 통신 수단(: 표준 스트림 또는 명명된 파이프)을 지원합니다.클라이언트 프로세스로부터의 커맨드 라인은, 다음의 몇개의 방법으로 CLI 프로그램으로 리다이렉트 할 수 있습니다.

일부 응용 프로그램은 CLI를 지원하며 사용자에게 자체 프롬프트를 표시하고 명령줄을 수락합니다.다른 프로그램에서는 CLI와 GUI를 모두 지원합니다.경우에 따라서는 GUI는 개별 CLI 실행 파일래퍼에 불과합니다.다른 경우 프로그램에서 GUI 대신 CLI를 옵션으로 제공하는 경우가 있습니다.CLI와 GUI는 다른 기능을 지원하는 경우가 많습니다.예를 들어 수치 분석 컴퓨터 프로그램인 MATLAB의 모든 기능은 CLI를 통해 사용할 수 있지만 MATLAB GUI는 일부 기능만 제공합니다.

1975년의 Collarge Cave Adventure에서는 사용자는 CLI를 사용하여 동굴 시스템을 탐색하기 위해 한두 단어를 입력합니다.

역사

명령줄 인터페이스는 텔레프린터(TTY) 머신을 통해 사람들에 의해 실행되는 통신 형태에서 발전했습니다.여기에는 Telex를 사용한 주문이나 확인서가 포함되어 있는 경우가 있습니다.초기 컴퓨터 시스템은 종종 텔레프린터를 조작자와의 상호작용 수단으로 사용했다.

기계식 텔레프린터는 텔레프린터를 모방한 키보드와 화면인 "유리"로 대체되었습니다."스마트" 단말기는 전체 화면에서 커서를 이동하거나 컴퓨터에 전송하기 위해 단말기의 데이터를 로컬로 편집하는 등의 추가 기능을 허용했습니다.마이크로컴퓨터 혁명이 기존의 미니컴퓨터+단말기-타임셰어링 아키텍처를 대체함에 따라 하드웨어 단자는 PC의 시리얼 포트를 통해 전송되는 단말 신호를 해석하는 PC 소프트웨어인 터미널 에뮬레이터로 대체되었습니다.일반적으로 조직의 새 PC를 기존의 미니 또는 메인프레임 컴퓨터와 연결하거나 PC와 PC를 연결하는 데 사용됩니다.이들 PC 중 일부는 게시판 시스템 소프트웨어를 실행하고 있었다.

초기 운영체제 CLI는 상주 모니터 프로그램의 일부로 구현되어 있어 쉽게 교체할 수 없었습니다.교환 가능한 컴포넌트로서의 셸의 첫 번째 실장은 Multics 시분할 운영 [1]체제의 일부였습니다.1964년 MIT 계산 센터 직원인 Louis Pouzin인수 치환을 [2]허용하면서 명령 스크립트를 실행하기 위한 RUNCOM 도구를 개발했습니다.Pouzin은 프로그래밍 언어와 같은 명령어를 사용하는 기술을 설명하기 위해 ""이라는 용어를 만들었고, 멀티ics 운영 [3]체제에서 아이디어를 구현하는 방법에 대한 논문을 작성했습니다.푸진은 1965년 고국인 프랑스로 돌아왔고, 최초의 멀티크 셸은 글렌다 슈뢰더에 [2]의해 개발되었다.

버전 7 Unix에서의 Bourne 쉘의 상호작용

최초의 Unix 쉘인 V6 쉘은 1971년 Bell Labs에서 Ken Thompson에 의해 개발되었으며, Schroeder의 Multics [4][5]쉘을 본떠 만들어졌습니다. 셸은 1977년에 V6 쉘을 대체하기 위해 도입되었습니다.인터랙티브한 명령어 인터프리터로 사용되지만 스크립트 언어로도 사용되었으며 구조화된 프로그램을 생성하는 것으로 간주되는 대부분의 기능을 포함하고 있습니다.Bourne 쉘은 KornShell(ksh), Almquist 쉘(ash), 인기 있는 Bourne-again 쉘(Bash)[5]의 개발로 이어졌습니다.

초기 마이크로컴퓨터 자체는 CP/M, DOS 또는 AppleSoft BASIC과 같은 명령줄 인터페이스를 기반으로 했습니다.1980년대와 1990년대에 Apple MacintoshMicrosoft Windows가 PC에 도입되면서 명령줄 인터페이스가 그래피컬 사용자 인터페이스로 대체되었습니다.명령줄은 대체 사용자 인터페이스로 사용할 수 있으며 시스템 관리자 기타 고급 사용자가 시스템 관리, 컴퓨터 프로그래밍 및 배치 처리를 위해 자주 사용합니다.

2006년 11월 Microsoft는 기존 Unix 쉘의 기능과 자체 객체 지향 기능을 결합한 Windows PowerShell 버전 1.0(이전의 코드명 Monad)을 출시했습니다.NET 프레임워크MinGWCygwin은 Unix와 같은 CLI를 제공하는 Windows용 오픈소스 패키지입니다.Microsoft는 서비스 for UNIX 애드온을 통해 MKS Inc.Ksh 구현 MKS Korn 쉘 for Windows를 제공하고 있습니다.

2001년부터 Macintosh 운영체제 macOS는 Darwin이라는 유닉스 계열 운영체제를 기반으로 하고 있다.이러한 컴퓨터에서는 응용 프로그램 폴더의 Utilities 하위 폴더에 있는 터미널 에뮬레이터 프로그램을 실행하거나 ssh를 사용하여 원격으로 시스템에 로그인하여 Unix와 유사한 명령줄 인터페이스에 액세스할 수 있습니다.Z 쉘은 macOS의 기본 셸이며 Bash, tcshKornShell도 제공됩니다.macOS Catalina 이전에는 Bash가 기본이었습니다.

사용.

CLI는 명령어 또는 쿼리의 풍부한 어휘와 광범위한 옵션(또는 임의)을 조합하여 순수한 GUI를 사용하는 것보다 텍스트로 빠르게 입력할 수 있을 때 사용합니다.이것은 일반적으로 운영체제명령어 셸의 경우입니다.CLI는 그래픽 사용자 인터페이스를 지원하기 위해 리소스가 부족한 시스템에서도 사용됩니다.일부 컴퓨터 언어 시스템(Python, Forth, LISP, Rexx 많은 BASIC 방언 등)은 코드를 빠르게 평가할 수 있는 대화형 명령줄 모드를 제공합니다.

CLI는 프로그래머 및 시스템 관리자, 엔지니어링 및 과학 환경, 기술적으로 고급 PC 사용자가 자주 사용합니다.CLI는 또한 시각 장애인들에게 인기가 있는데, 명령과 응답은 새로 고침 가능한 점자 디스플레이를 사용하여 표시할 수 있기 때문이다.

셸 CLI의 구조

명령줄 인터페이스의[6][7] 일반적인 패턴은 다음과 같습니다.

프롬프트 명령 param1 param2 param3 … paramN
  • 프롬프트 - 사용자에게 컨텍스트를 제공하기 위해 프로그램에 의해 생성됩니다.
  • 명령: 사용자가 제공합니다.명령어는 보통 다음 세 가지 클래스 중 하나입니다.
    1. 내부 명령어는 명령줄 인터프리터에 의해 인식 및 처리됩니다.
    2. 포함된 명령어는 개별 실행 파일을 실행합니다.
    3. 외부 명령어는 다른 당사자가 포함할 수 있는 실행 파일을 실행합니다.
  • param1 ...paramN : 사용자가 지정한 파라미터.파라미터의 형식과 의미는 명령어에 따라 달라집니다.[ Included ]명령어 또는 [External]명령어의 경우 파라미터의 값은 OS가 기동할 때 프로그램에 전달됩니다.파라미터는 [Arguments]또는 [Options] 중 하나입니다.

이 형식에서는 명령줄 요소 간의 구분 기호는 공백 문자이며 줄 끝 구분 기호는 줄 바꿈 기호입니다.이것은 널리 사용되는(그러나 보편적인 것은 아니다) 관례입니다.

CLI는 일반적으로 구문과 시멘틱스로 구성된다고 볼 수 있습니다.구문은 모든 명령어가 따라야 하는 문법입니다.운영 체제의 경우 DOS와 Unix각각 모든 명령어가 따라야 하는 자체 규칙 집합을 정의합니다.임베디드 시스템의 경우 Nortel, Juniper Networks, Cisco Systems 등의 각 벤더가 독자적인 규칙 세트를 정의합니다.또한 이러한 규칙은 사용자가 명령 시스템을 탐색하는 방법을 지정합니다.시멘틱스는 가능한 연산의 종류, 이러한 연산을 수행할 수 있는 데이터의 종류 및 문법이 이러한 연산과 데이터를 어떻게 나타내는지를 정의합니다.이것은 구문에서 심볼적인 의미입니다.

두 개의 다른 CLI가 구문 또는 의미론 중 하나에 일치할 수 있지만 두 CLI가 모두 일치해야 사용자가 아무것도 배우지 않고 두 CLI를 모두 사용할 수 있을 뿐만 아니라 스크립트 재사용을 활성화할 수 있습니다.

단순한 CLI에서 프롬프트가 표시되고 Enter 키로 종료된 사용자가 입력한 "명령줄"을 받아들인 후 지정된 명령을 실행하여 결과 또는 오류 메시지를 텍스트로 표시합니다.고도의 CLI 에서는 지정된 명령어를 실행하기 전에 명령줄 검증, 해석 및 파라미터 확장 및 출력 캡처 또는 리다이렉트(옵션)가 이루어집니다.

GUI의 버튼이나 메뉴 항목과 달리 명령줄은 일반적으로 사용자가 원하는 작업을 정확하게 기술하는 자체 문서화입니다.또한 명령줄에는 일반적으로 결과를 사용자 정의하기 위해 변경할 수 있는 많은 기본값이 포함되어 있습니다.명령어 전체를 나타내는 문자열 또는 에일리어스를 할당함으로써 유용한 명령줄을 저장할 수 있습니다.또한 여러 명령어를 그룹화하여 프로그램 컴파일, 설치, 실행 등 복잡한 시퀀스를 수행할 수 있습니다.이러한 명령어프로시저 또는 스크립트라고 하는1개의 엔티티를 작성합니다.이 엔티 자체를 명령어로 취급할 수 있습니다.이러한 장점은 사용자가 복잡한 명령 또는 일련의 명령어를 한 번만 파악해야 한다는 것을 의미합니다.이러한 명령어는 저장할 수 있기 때문에 다시 사용할 수 있습니다.

CLI 쉘에 대한 명령어는 보통 다음 중 하나의 형식입니다.

  • doSomething how toFiles
  • doSomething how sourceFile destinationFile
  • doSomething how < inputFile > outputFile
  • doSomething how doSomething how doSomething how > outputFile

여기서 do실제로 동사(를 들어 명령어를 "상세하게" 또는 "조용히" 실행되어야 함)와 명령어가 동작해야 하는 객체(일반적으로 하나 이상의 파일)를 파일링합니다.>세 번째 예에서는 리다이렉션오퍼레이터를 사용하여 명령줄 인터프리터에 명령어의 출력을 표준 출력(화면)이 아닌 이름 있는 파일로 송신하도록 지시합니다.그러면 파일이 덮어쓰게 됩니다.사용.>>는 출력을 리다이렉트하여 파일에 추가합니다.또 다른 리다이렉션 연산자는 세로 막대( 어떤 명령어의 출력이 다음 명령어의 입력이 되는 파이프라인을 만듭니다.

CLI 및 리소스 보호

PATH 환경변수에 표시되는 경로를 수정하여 사용 가능한 명령어 세트를 변경할 수 있습니다.Unix 에서는, 커맨드를 실행 파일로서 마크 할 필요도 있습니다.경로 변수의 디렉토리는 지정된 순서대로 검색됩니다.경로 순서를 변경함으로써 \OS2\MDOS\E와 같이 실행할 수 있습니다.\OS2\E 대신 EXE.EXE(기본값이 반대일 경우)실행 파일의 이름을 변경하는 것도 효과적입니다.예를 들어, 마음에 드는 에디터의 이름을 EDIT로 변경하는 경우가 많습니다.

명령줄에서는 고급 내부 명령어에 대한 액세스 등 사용 가능한 명령을 제한할 수 있습니다.Windows CMDEXE가 이렇게 합니다.종종 Shareware 프로그램은 프롬프트에서 [clarification needed]'관리자가 배치 파일 실행을 비활성화했습니다' 명령을 인쇄하는 등 명령 범위를 제한합니다.

네트워크 라우터의 CLI 등 일부 CLI에는 모드 계층이 있으며 각 모드에서 지원되는 명령어세트는 다릅니다.명령어 세트는 보안, 시스템, 인터페이스 등과 관련지어 그룹화 됩니다.이러한 시스템에서는 사용자가 일련의 서브모드를 통과할 수 있습니다.예를 들어 CLI에 interfacesystem이라는2가지 모드가 있는 경우 사용자는 명령어인터페이스를 사용하여 인터페이스 모드를 시작할 수 있습니다.이 시점에서 사용자가 인터페이스 모드를 종료하고 시스템모드를 시작할 때까지 시스템모드에서 명령어에 액세스 할 수 없는 경우가 있습니다.

명령 프롬프트

스위치를 켜거나 하드 리셋한 후 BBC Micro 프롬프트 표시

명령어 프롬프트(또는 단순히 프롬프트)는 명령줄 인터페이스에서 명령어를 받아들일 준비를 나타내기 위해 사용되는 일련의 (1개 또는 여러 개의) 문자입니다.그대로 사용자가 조치를 취하도록 유도합니다.프롬프트는 보통 다음 중 하나의 문자로 끝납니다.$,%,#,[8][9] :,>또는-[10] 또, 현재의 작업 디렉토리의 패스나 호스트명등의 다른 정보도 포함되어 있는 경우가 많습니다.

많은 Unix 및 파생 시스템에서 프롬프트는 일반적으로 다음과 같이 끝납니다.$또는%사용자가 일반 사용자이지만#사용자가 슈퍼유저(유닉스 용어로는 루트)인 경우.

최종 사용자는 대부분의 경우 프롬프트를 변경할 수 있습니다.환경에 따라서는 색상, 특수 문자 및 기타 요소(현재 시간, 사용자, 셸 번호 또는 작업 디렉토리 등)를 포함할 수 있습니다.예를 들어 프롬프트를 보다 유익하거나 시각적으로 보기 좋게 하거나 다양한 머신의 세션을 구별하거나 현재 수준을 나타내기 위해서입니다.명령어를 네스트합니다.시스템에 따라서는 프롬프트 정의의 특수 토큰을 사용하여 프롬프트 표시 중에 명령줄 인터프리터에 의해 외부 프로그램이 호출될 수 있습니다.

DOS' 명령어COM 및 Windows NT의 cmd.exe에서 사용자는 다음 명령을 실행하여 프롬프트를 수정할 수 있습니다.PROMPT명령 또는 대응하는 값을 직접 변경함으로써%PROMPT% 환경 변수입니다.대부분의 최신 시스템의 디폴트인C:\>예를 들어, 문체는 다음과 같이 얻을 수 있다.PROMPT $P$G오래된 DOS 시스템의 디폴트.C>에 의해서 얻어진다.PROMPT단, 일부 시스템에서는 새로운 것이 생성됩니다.C:\>스타일(플로피 드라이브 A: 또는 B:;에서 사용되지 않는 한)PROMPT $N$G를 사용하여 자동 기본값을 재정의하고 이전 스타일로 명시적으로 전환할 수 있습니다.

많은 Unix 시스템은$PS1variable(Prompt String [11]1) 단, (사용하는 에 따라) 다른 변수도 프롬프트에 영향을 줄 수 있습니다.Bash 쉘에서 다음 형식의 프롬프트:

[time] user@host: work_host $

명령어를 발행하여 설정할 수 있습니다.

수출. PS1='[\t] \u@\'H: \W 
                

zsh의 경우$RPROMPTvariable은 디스플레이 오른쪽에 있는 옵션 "선택사항"을 제어합니다.텍스트 입력 위치가 변경되지 않는다는 점에서 실제 프롬프트는 아닙니다.프롬프트와 같은 행에 정보를 표시하기 위해 사용되며 오른쪽 정렬됩니다.

RISC OS에서 명령 프롬프트는*따라서 (OS) CLI 명령어는 종종 "star 명령어"[12]라고 불립니다.명령어를 앞에 두고 다른 명령줄(BBC BASIC 명령줄 등)에서도 같은 명령어에 액세스할 수 있습니다.*.

인수

MS-DOS 명령줄: 명령어 및 인수로의 해석을 나타냅니다.

명령줄 인수 또는 매개 변수는 프로그램이 시작될 때 프로그램에 제공되는 정보 항목입니다.프로그램에는 정보의 소스 또는 대상을 식별하거나 프로그램 동작을 변경하는 많은 명령줄 인수가 있을 수 있습니다.

명령어 프로세서가 활성화되면 일반적으로 프로그램 이름 뒤에 명령줄 인수(있는 경우)를 입력하여 프로그램이 호출됩니다.예를 들어 Unix 및 Unix와 유사한 환경에서 명령줄 인수의 예는 다음과 같습니다.

rm 파일.s

"file.s"는 프로그램 rm에 파일 "file"을 삭제하도록 지시하는 명령줄 인수입니다.s" 입니다.

C, C++ Java와 같은 일부 프로그래밍 언어에서는 프로그램이 명령줄 인수를 주요 함수의 문자열 매개 변수로 처리함으로써 해석할 수 있습니다.Python과 같은 다른 언어들은 운영체제 고유의 API(기능성)를 공개합니다.sys 모듈, 특히sys.argv"명령줄 인수"를 지정합니다.

Unix와 유사한 운영 체제에서 파일 이름 대신 사용되는 단일 하이픈은 프로그램이 표준 입력에서 나오는 데이터를 처리하거나 표준 출력으로 데이터를 보내야 함을 지정하는 특별한 값입니다.

명령줄 옵션

명령줄 옵션 또는 단순 옵션(플래그 또는 스위치라고도 함)은 명령의 동작을 변경합니다.효과는 명령어 프로그램에 따라 결정됩니다.옵션은 명령줄의 명령어 이름 뒤에 공백으로 구분되어 있습니다.다음과 같이 첫 번째 옵션 앞에 공백이 반드시 필요한 것은 아닙니다.Dir/?그리고.DIR /?DOS에서는 DIR 명령에서 사용 가능한 옵션을 나열하는 것과 동일한[10] 효과가 있습니다.dir --help(많은 버전의 Unix에서) 에서는 옵션 앞에 적어도1개의 공백이 필요합니다(대문자와 소문자가 구분됩니다).

옵션의 형식은, operating system 마다 크게 다릅니다.대부분의 경우 구문은 운영체제 요건이 아닌 관례에 따라 이루어집니다.명령줄 전체는 프로그래머가 원하는 방식으로 처리할 수 있는 프로그램에 전달되는 문자열입니다.단, 인터프리터가 명령어 이름이 어디에서 끝나는지, 인수와 옵션이 시작되는지를 알 수 있는 한.

몇 가지 규칙을 설명하기 위해 디렉토리 내의 파일 목록과 관련된 명령줄 옵션의 대표적인 샘플입니다.

운영 체제 명령어 유효한 대체 수단 메모들
오픈VMS directory/owner Dir /Owner 파일 소유권도 표시하도록 directory 명령을 지정합니다.
디렉토리 명령어명은 대소문자를 구분하지 않습니다.또, 일의인 채로 하기 위해서 필요한 문자수만큼 생략할 수 있습니다.
창문들 DIR/Q/O:S d* dir /q d* /o:s 이름이 "D"로 시작하는 파일의 소유권을 크기별로 가장 작은 순으로 정렬하여 표시합니다.
인수 d* 주위에 공백이 필요합니다.
Unix 계열 시스템 ls -lS D* ls -S -l D* 크기별로 정렬된 "D"("d"가 아닌 "D")로 시작하는 긴 형식의 파일 및 디렉토리로 표시됩니다(가장 큰 파일부터 순서대로 정렬됩니다.
모든 인수와 옵션에는 메모 공백이 필요하지만 함께 실행할 수도 있습니다(: -lS는 -l -S와 동일).
데이터 일반 RDOS CLI list/e/s 04-26-80/b List /S/E 4-26-80/B 에 1980년 4월 26일 이전에 작성된 파일의 모든 Atribute를 나타냅니다.
date 인수 끝에 있는 /B는 해당 인수의 의미를 변경하는 로컬스위치이며 /S 및 /E는 글로벌스위치입니다.즉, 명령어 전체에 적용됩니다.
명령어 생략

Multics에서는 명령줄 옵션과 서브시스템 키워드를 생략할 수 있습니다.이 아이디어는 PL/I 프로그래밍 언어(예를 들어 STRING RANGE의 경우 STRG, DECL의 경우 DCL)에서 파생된 것으로 보입니다.예를 들어, Multics "forum" 하위 시스템에서는 -lgsj로 줄여서 -long_subject 파라미터를 지정할 수 있습니다.또한 일반적으로 Did for delete_iacl_dir 등 명령어 이름을 형성하기 위해 밑줄과 함께 스트링되는 단어의 첫 글자에 대응하는 Multics 명령어가 생략되는 경우가 많습니다.

일부 다른 시스템에서는 명령어 이름의 첫 문자를 고유하게 식별할 수 있도록 허용하는 등 약어가 자동으로 이루어집니다(예:SU의 줄임말로서SUPERUSER한편, 일부 특정 약어가 미리 프로그래밍되어 있는 경우도 있습니다(예:MD위해서MKDIR명령어를 사용합니다.또는 배치 스크립트 및 에일리어스를 통해 사용자 정의(예:alias md mkdirtcsh)로 표시됩니다.

DOS, Windows, OS/2의 옵션 표기법

DOS, OS/2 및 Windows에서는 명령에서 다른 프로그램이 호출됩니다.COM 또는 CMD.EXE(또는 그 내부 명령어)는, 같은 operating system내에서 다른 구문을 사용할 수 있습니다.예를 들어 다음과 같습니다.

  • 옵션은, 다음의 몇개의 「스위치 문자」로 표시할 수 있습니다./,-또는 둘 중 하나를 사용할 수 있습니다.이하를 참조해 주세요.
  • 대소문자를 구분하거나 구분하지 않을 수 있습니다.
  • 옵션과 그 인수가 함께 실행되거나 공백으로 구분되거나 일반적으로 문자로 구분되는 경우가 있습니다.:또는=;이렇게Prog -fFilename,Prog -f Filename,Prog -f:Filename,Prog -f=Filename.
  • 단일 문자 옵션을 [10]조합할 수 있는 프로그램도 있고 조합할 수 없는 프로그램도 있습니다.스위치-fA와 같은 것을 의미할 수 있다-f -A또는 올바르지 않을 수도 있고 유효하지만 다른 파라미터일 수도 있습니다.[10]

DOS, OS/2 Windows에서는 슬래시(/)가 가장 널리 사용되고 있습니다만, 하이픈을 사용하는 경우도 있습니다.많은 버전의 DOS(MS-DOS/PC DOS 2.xx 이상, 5.0 이후 모든 버전의 DR-DOSPTS-DOS, Embedded DOS, FreeDOS RxDOS)에서 사용되는 스위치 문자(간혹 약어 switchar 또는 switchchar)는 시스템 콜(INT=2100)에서 반환된 값으로 정의됩니다.이 API에서 반환되는 기본 문자는 다음과 같습니다./단, 상기 시스템에서는 하이픈마이너스로 변경할 수 있습니다.단, Datalight ROM-DOS 및 MS-DOS/PC DOS 5.0 이후에서는 항상 반환됩니다./(SwitChar 기능을 다시 활성화하기 위해 사용 가능한 여러 TSR 중 하나가 로드되지 않은 경우)이러한 시스템(MS-DOS/PC DOS 2.xx, DOS Plus 2.1, DR-DOS 7.02 이후, PTS-DOS, 임베디드 DOS, FreeDOS, RxDOS)의 일부에서는, 설정SWITCHAR 디렉티브에 의해서도, 설정을 미리 설정할 수 있습니다.SYS. General Software의 Embedded DOS는 같은 목적을 위한 SWITCH 명령어를 제공하지만 4DOS는 다음 방법으로 설정을 변경할 수 있습니다.SETDOS /W:nDR-DOS에서 설정이 변경된 [13]경우/, 첫 번째 디렉토리 구분자\PROMPT 파라미터의 표시에서$G슬래시로 바뀝니다./(DOS, FlexOS, 4680 OS, 4690 OS, OS/2 및 Windows에서도 유효한 디렉토리 구분자이기도 합니다).이것에 의해,[10] 변경을 나타내는 시각적 단서가 됩니다.또한 현재 설정은 내장 도움말 [10]화면에도 반영됩니다.DR-DOS 명령의 일부 버전.COM은 PROMPT 토큰도 지원합니다.$/현재 설정을 표시합니다.명령어DR-DOS 7.02는 다음과 같은 유사 환경 변수도 제공하기 때문에%/%휴대용 배치 작업을 [14][15]쓸 수 있도록 합니다.몇 가지 외부 DR-DOS 명령이 환경 변수를 추가로 지원합니다. %SWITCHAR%시스템 설정을 덮어씁니다.

다만, 많은 프로그램이 유선 접속되어 있습니다./명령줄 인수를 해석하기 전에 스위치 설정을 취득하는 것이 아니라 한정됩니다.극히 소수의 포트(주로 Unix 유사 시스템의 포트)는 스위치 문자가 설정되어 있지 않은 경우에도 "-"를 받아들이도록 프로그램되어 있습니다(예를 들어,netstat그리고.ping는, Microsoft Windows 에 부속되어 있는 /?옵션을 사용하여 사용 가능한 옵션을 일람표시합니다만, 리스트에는 「-」규칙이 지정되어 있습니다.

Unix 계열 시스템의 옵션 표기법

Unix와 같은 시스템에서는 ASC가II 하이픈-마이너스는 옵션을 시작합니다.새로운 (및 GNU) 표기법은 하이픈을 2개 사용한 후 단어(예를 들어)를 사용하는 것입니다.--create이전 표기법(또한 자주 사용하는 옵션의 옵션으로 사용 가능)에서 옵션의 용도를 특정하기 위해 하이픈을 1개 사용한 후 문자를 1개 사용합니다(예:-c); 1개의 하이픈 뒤에2개 이상의 문자가 있는 경우, 2개의 옵션이 지정되어 있는 것을 의미하거나, 2번째 이후의 문자가 첫 번째 [16]옵션의 파라미터(파일명이나 날짜 등)인 것을 의미할 수 있습니다.

두 개의 하이픈 마이너스 문자(다음 문자 없음)--는 나머지 인수를 옵션으로 취급하지 않는 것을 나타내는 경우가 있습니다.예를 들어 파일 이름 자체가 하이픈으로 시작하는 경우나 내부 명령어(sudo 등)에 대한 추가 인수가 있는 경우 등에 도움이 됩니다.설명적인 옵션 이름이 사용되는 경우 "긴 옵션" 앞에 이중 하이픈을 사용할 수도 있습니다.이것은 GNU 소프트웨어의 일반적인 기능입니다.보통 getopt 함수 및 프로그램 및 getopts 명령어는 명령줄 옵션의 해석에 사용됩니다.

Unix 명령어 이름, 인수 및 옵션은 대소문자를 구분합니다(다른 운영 체제의 일반적인 명령어가 주로 Unix로 포팅된 몇 가지 예는 제외).

다른 시스템의 옵션 표기법

FlexOS, 4680 OS 및 4690 OS 사용-.

일반적으로 사용되는 CP/M[.

Conversational Monitor System(CMS; 대화 모니터시스템)은 왼쪽 괄호를 1개 사용하여 명령어 끝에 있는 옵션을 다른 인수와 분리합니다.예를 들어, 다음 명령에서는 대상 파일이 존재하는 경우 대상 파일을 교체해야 하며 원본 파일의 날짜와 시간을 복사본에 유지해야 함을 옵션이 나타냅니다.COPY source file a target file b (REPLACE OLDDATE

RDOS, AOS 등의 운영체제에서 Data General의 CLI 및 Business Basic과 함께 제공되는 CLI 버전에서는 오직/는 스위치 문자로 대소문자를 구분하여 일부 인수의 "로컬스위치"를 사용하여 다음과 같은 해석 방법을 제어할 수 있습니다.MAC/U LIB/S A B C $LPT/L에는 사용자 기호를 추가하는 매크로 어셈블러 명령어에 글로벌옵션 "U"가 있는데, 2개의 로컬스위치는 패스2에서 LIB를 지정하는 스위치와 프린터로 직접 나열하는 스위치인 $LPT에서 건너뜁니다.

빌트인 사용

CLI에 대한 비판 중 하나는 이용 [citation needed]가능한 액션에 대한 사용자에 대한 단서가 부족하다는 것입니다.이와는 대조적으로 GUI는 일반적으로 메뉴, 아이콘 또는 기타 시각적 [citation needed]단서를 사용하여 사용 가능한 작업을 사용자에게 알립니다.이 제한을 극복하기 위해 많은 CLI 프로그램에서는 일반적으로 인수나 다음 중 하나를 사용하지 않고 호출할 때 사용 현황 메시지가 표시됩니다.?,-?,-h,-H,/?,/h,/H,/Help,-help, 또는--help를 클릭합니다.[10][17][18]

단, 파라미터 없이 프로그램 이름을 입력하면 명령행 인수가 옵션인 프로그램 및 스크립트가 추가 통지 없이 실행되므로 사용법 도움말을 표시할 수 있습니다.

적어도 도움말 매개 변수에는 바람직하지만, 프로그램이 위에 예시된 모든 옵션 리드인 문자를 지원하지 않을 수 있습니다.DOS에서 기본 명령줄 옵션 문자를 변경할 수 있습니다./로.-프로그램은 현재 설정을 확인하기 위해 SwitChar API를 조회할 수 있습니다.따라서 프로그램이 이들을 모두 지원하도록 유선 연결되어 있지 않은 경우 사용자는 현재 설정을 알고 있어야만 도움을 요청할 수 있습니다.SwitChar가 로 변경된 경우-그 때문에/문자는 DOS 명령줄에서도 대체 경로 구분 기호로 받아들여집니다.프로그램은 다음과 같은 옵션을 잘못 해석할 수 있습니다./h또는/H도움말 [10]매개 변수가 아닌 경로로 표시됩니다.단, 첫 번째 파라미터 또는 유일한 파라미터로 지정될 경우 대부분의 DOS 프로그램은 현행 SwitChar [10][13]설정에 관계없이 도움말 요청으로 받아들입니다.

프로그램에 따라 다른 수준의 도움말을 선택할 수 있습니다.이를 지원하는 일부 프로그램에서는 도움말 파라미터의 옵션인수로 상세 수준을 지정할 수 있습니다( 참조)./H:1,/H:2기타 [19]도움말 옵션에서는 물음표와 긴 도움말 화면을 사용하여 도움말 파라미터에 대한 간단한 도움말만 제공합니다.

프로그램에 따라서는 help 파라미터의 인수로서 문제의 파라미터를 제공하거나 그 반대(와 같이)로 허가된 파라미터에 대한 추가 또는 보다 구체적인 도움말을 이용할 수 있습니다./H:W또는 인/W:?(비활성화)/W프로그램이 지원하는 다른 매개 변수가 될 수 있습니다.)[20][21][18][17][19][nb 1]

help 파라미터와 비슷하지만 일반적인 것은 아닙니다.프로그램에 따라서는 다음과 같은 "about" 파라미터를 사용하여 호출하면 자신에 대한 추가 정보(모드, 상태, 버전, 작성자, 라이센스 또는 연락처 정보 등)가 제공됩니다.-!,/!,-about, 또는--about를 클릭합니다.[17]

그 이후로는?그리고.!일반적으로 문자는 명령줄에서 다른 용도로도 사용할 수 있으므로 모든 시나리오에서 사용할 수 있는 것은 아닙니다.따라서, 대응하는 도움말 정보에 액세스 하는 유일한 옵션은 사용할 수 없습니다.

의 끝VT100에 표시되는 RT-11SJ로부터의 HELP 명령어 출력

프로그램의 내장 내부 도움말보다 상세한 지원이 필요한 경우, 많은 시스템이 전용 외부 '를 지원하고 있습니다.help command" 명령어(또는 이와 유사)는 명령어 이름을 호출 파라미터로 받아들여 외부 도움말시스템을 기동합니다.

DR-DOS 제품군에서 입력/?또는/H 명령어를 사용합니다.명령어 대신 COM 프롬프트가 동적으로 생성된 사용 [10]가능한 내부 명령어 목록을 표시합니다.4DOS 와 NDOS 는, 같은 기능을 서포트하고 있습니다.?프롬프트에[13] 표시됩니다(이것은 DR-DOS COMMAND의 새로운 버전에서도 허용됩니다).COM)을 통해 내부 명령을 개별적으로 비활성화하거나 다시 활성화할 수 있습니다.SETDOS /I이 외에도 DR-DOS COMMAND의 새로운 버전도 있습니다.[13]COM은 또한?%명령어를 사용하여 사용 가능한 내장 의사 환경 변수 목록을 표시합니다.빠른 도움말 참조의 목적 외에도, 이것은 배치 작업에서 기본 명령줄 [10]프로세서의 기능을 쿼리하는 데 사용할 수 있습니다.

명령어 설명 구문

삽입 사용 도움말 및 man 페이지에서는 일반적으로 다음과 같은 작은 구문을 사용하여 유효한 명령어 [22][23][24][nb 2]형식을 설명합니다.

  • 필수 파라미터의 각도 괄호:ping <hostname>
  • 옵션 파라미터의 경우 대괄호:mkdir [-p] <dirname>
  • 반복 항목의 줄임표:cp <source1> [source2…] <dest>
  • 항목 선택을 위한 세로 막대:netstat {-t -u}

이러한 문자는 셸에서 직접 사용할 때와 다른 의미를 가집니다.파라미터 이름을 리터럴 문자열과 혼동하지 않을 경우 꺾쇠 괄호를 생략할 수 있습니다.

공백 문자

컴퓨팅의 많은 분야, 특히 명령줄에서 스페이스 문자는 명령어 또는 파라미터의 일부로서 또는 파라미터 또는 이름 구분자로서의 두 가지 서로 다른 기능을 가지고 있기 때문에 문제를 일으킬 수 있습니다.파일 및 디렉토리 이름에 포함된 공간을 처음부터 금지함으로써 모호함을 방지할 수 있습니다(예를 들어, 밑줄로 대체). _또는 따옴표 사이에 공백이 포함된 이름을 포함하거나 공백 앞에 이스케이프 문자(일반적으로 백슬래시)를 사용합니다.\예를 들어,

Long path/Long program name Parameter one Parameter two

애매한가(「프로그램명」이 프로그램명의 일부인가, 2개의 파라미터인가)?단,

Long_path/Long_program_name Parameter_one Parameter_two…,
LongPath/LongProgramName ParameterOne ParameterTwo…,
"Long path/Long program name" "Parameter one" "Parameter two"

그리고.

Long\ path/Long\ program\ name Parameter\ one Parameter\ two

애매하지 않아요.Unix 기반 운영체제는 임베디드 공간 사용을 최소화하여 견적 필요성을 최소화합니다.Microsoft Windows 에서는, 디렉토리명등의 임베디드 스페이스가 일반적이기 때문에, 따옴표를 사용할 필요가 있는 경우가 많습니다.

명령줄 인터프리터

대부분의 사용자는 셸을 대화형 명령어인터프리터라고 생각하지만 실제로는 각 스테이트먼트가 명령어를 실행하는 프로그래밍 언어입니다.명령어 실행의 인터랙티브와 프로그래밍 측면을 모두 만족시켜야 하기 때문에 이는 설계만큼이나 역사에 의해 형성된 이상한 언어입니다.

--

명령줄 인터프리터(CLI)라는 용어는 사용자가 파일 또는 다른 종류의 데이터 스트림에서 읽을 수 있는 일련텍스트해석하도록 설계된 컴퓨터 프로그램에 적용됩니다.해석의 컨텍스트는 일반적으로 주어진 운영 체제 또는 프로그래밍 언어 중 하나입니다.

명령줄 인터프리터를 사용하면 사용자는 다양한 명령어를 매우 효율적이고 간결하게 실행할 수 있습니다.이를 위해서는 사용자가 명령어 이름, 파라미터 및 해석되는 언어의 구문을 알아야 합니다.

Unix 메커니즘 및 OS/2 EXTPROC 명령을 사용하면 배치 파일을 외부 프로세서에 쉽게 전달할 수 있습니다.이러한 메커니즘을 사용하여 전용 명령어프로세서를 작성하고 배치 파일에 있는 외부 데이터 파일을 처리할 수 있습니다.

OS/2 Presentation Manager나 Microsoft Windows의 초기 버전 등 많은 그래픽 인터페이스는 명령줄을 사용하여 도우미 프로그램을 호출하여 문서 및 프로그램을 엽니다.명령어는 그래픽[clarification needed] 셸 또는 레지스트리나 OS/2 의 파일에 저장됩니다. OS2USER.INI파일.

초기 역사

펀치 테이프 리더와 펀치를 갖춘 Teletype 모델 33 ASR 텔레프린터 키보드
DECVT52 터미널

초기 컴퓨터는 인터랙티브한 입출력 장치를 지원하지 않았으며, 종종 컴퓨터 운영자와 통신하기 위해 감지 스위치와 조명에 의존했습니다.이는 한 번에 하나의 프로그램을 실행하는 배치 시스템에 적합했으며, 프로그래머가 연산자 역할을 하는 경우가 많았습니다.또한 조명과 스위치를 한 번의 기계 명령으로 테스트하고 설정할 수 있기 때문에 오버헤드가 낮다는 이점도 있었습니다.이후 오퍼레이터가 시스템과 통신할 수 있도록 단일 시스템 콘솔이 추가되었습니다.

1960년대 이후 컴퓨터와의 사용자 상호작용은 주로 명령줄 인터페이스를 통해 이루어졌습니다.처음에는 Teletype Model 33 ASR과 같은 기계에서 이루어졌지만 그 후 VT52와 같은 초기 CRT 기반 컴퓨터 단말기에서 이루어졌습니다.

이 장치들은 모두 순수하게 텍스트 기반이었고 그래픽이나 [nb 3]그림을 표시하는 기능은 없었습니다.비즈니스 애플리케이션 프로그램의 경우 텍스트 기반 메뉴가 사용되었지만, 보다 일반적인 상호 작용의 경우 명령줄이 인터페이스였습니다.

1964년경 Louis PouzinMultics에서 Compatible Time-Sharing System(CTSS;[26][better source needed] 호환 가능한 시분할 시스템)의 이전 단순한 설비를 기반으로 개념과 이름 을 도입했습니다.

1970년대 초반부터 Unix 운영체제는 강력한 명령줄 환경의 개념을 채택하여 하나의 명령어의 출력을 다른 명령어의 입력으로 파이핑하는 기능을 도입했습니다.유닉스는 커스텀 명령어처럼 동작하는 "쉘 스크립트"로 명령어 문자열을 저장하고 재실행하는 기능도 가지고 있었다.

명령줄은 또한 Commodore PET, Apple II, BBC Micro와 같은 초기 가정용 컴퓨터의 메인 인터페이스이기도 했습니다.대부분 BASIC 인터프리터 형태로 되어 있었습니다.더 강력한 비즈니스 지향 마이크로컴퓨터가 CP/MIBM PC와 같은 이후 DOS 컴퓨터와 함께 출시되자, 명령줄은 글로벌화출력 파이프와 같은 Unix 쉘의 구문과 기능 중 일부를 차용하기 시작했습니다.

명령줄은 1983년 Apple Lisa 및 1984년 Apple Macintosh에서 사용된 PARC GUI 접근법에 의해 처음 심각한 문제가 발생했습니다.일부 컴퓨터 사용자는 GEOSWindows 3.1과 같은 GUI를 사용했지만 대부분의 IBM PC 사용자는 COMMAND를 대체하지 않았습니다.1995년[27][28]Windows 95가 출시될 까지 GUI를 갖춘 COM 쉘.

운영 체제 쉘로서의 현대적 사용

현재 대부분의 비전문가 컴퓨터 사용자는 GUI를 거의 독점적으로 사용하고 있지만, 보다 고도의 사용자는 강력한 명령줄 환경에 접근할 수 있습니다.

  • DCL 언어를 사용하는 기본 VAX/VMS 명령 셸은 PC-DCL 및 Acceler8 DCL Lite를 포함하여 최소 3회 이상 Windows 시스템에 이식되었습니다.Unix 명령 셸은 VMS 및 DOS/Windows 95 및 Windows NT 유형의 운영 체제에 이식되어 있습니다.
  • 명령어COMMS-DOS, IBM PC DOS 및 DR-DOS, SISNE Plus, PTS-DOS, ROM-DOSFreeDOS와 같은 클론의 명령줄 인터프리터입니다.
  • Windows Resource Kit 및 Windows Services for UNIX에는 Perl 인터프리터와 함께 Korn 및 Bourne 셸이 포함됩니다(UNIX용 서비스에는 이후 버전의 ActiveState ActivePerl버전1 및 2의 Interix 및 Microsoft가 컴파일한 셸이 포함됩니다).
  • IBM OS/2( eComStation 및 ArcaOS와 같은 파생 모델)에는 cmd.exe 프로세서가 있습니다.그러면 COMMAND가 복사됩니다.REXX에 대한 확장 기능을 가진 COM 명령어.
  • cmd.exe는 윈도우즈 NT 운영 체제 스트림의 일부입니다.
  • 또 다른 cmd.exe는 Windows CE 3.0용 제거 셸입니다.
  • 포켓이라고 하는 MS-DOS 타입의 인터프리터DOS는 Windows CE 머신에 이식되어 있습니다.최신 릴리스는 MS-DOS 6.22와 거의 동일하며 Windows 1, 2, 3.0, QBasic 및 기타 개발 도구인 4NT 및 4DOS도 실행할 수 있습니다.최신 릴리스에는 MS-DOS 6.22, PC DOS 7, DR DOS 3.x 등 여러 셸이 포함되어 있습니다.
  • Windows 사용자는 CScript 인터페이스를 사용하여 명령줄에서 프로그램을 대체할 수 있습니다.PowerShell은 명령줄 인터페이스를 제공하지만 애플릿은 셸 스크립트로 작성되지 않습니다.Unix 쉘의 실장은 POSIX 서브시스템,[29] Cygwin, MKS Toolkit, UWIN, Hamilton C 쉘 및 기타 소프트웨어 패키지의 일부로서도 이용할 수 있습니다.이러한 상호운용성 도구에 사용할 수 있는 셸에는 csh, ksh, sh, Bash, rsh, tclsh 등이 있으며, 보다 일반적인 zsh, psh가 있습니다.
  • PHP 구현에는 php-cli라는 대화형 사용을 위한 셸이 있습니다.
  • 표준 Tcl/Tk에는 Tclsh와 Wish라는2개의 인터랙티브셸이 있으며, 후자는 GUI 버전입니다.
  • Python, Ruby, Lua, XLNT 및 기타 인터프리터도 대화형 사용을 위한 명령 셸을 갖추고 있습니다.
  • FreeBSD슈퍼유저의 기본 인터랙티브셸로서 tcsh를 사용하고 기본 스크립트셸로서 ash를 사용합니다.
  • 많은 Linux 디스트리뷰션에는 Unix 쉘의 Bash 구현이 있습니다.
  • Apple macOS 및 일부 Linux 배포에서는 zsh를 사용합니다.이전에 macOS에서는 tcsh와 Bash를 사용했습니다.
  • 임베디드 Linux(및 기타 Unix 계열) 디바이스Busybox의 일부로 Unix 쉘의 Ash 구현을 사용하는 경우가 많습니다.
  • Android는 이전 Android 버전에서 사용되던 애쉬에서[32] 파생된 셸을 별도[33] 툴박스 바이너리 명령으로 대체하는 mksh 셸을 [30][31]사용합니다.
  • Cisco IOS,[34] Junos[35] 및 기타 많은 라우터는 일반적으로 명령줄에서 설정합니다.
  • Plan 9 운영체제에서는 Bourne 과 유사한 rc 쉘을 사용합니다.

스크립트 작성

대부분의 명령줄 인터프리터는 다양한 익스텐트에 대한 스크립팅을 지원합니다.(대부분의 경우 특정 명령줄 인터프리터에게 고유한 언어이긴 하지만 이들은 인터프리터 프로그래밍 언어의 인터프리터입니다).해석하는 언어로 작성된 스크립트(각종 셸 스크립트 또는 배치 파일)를 해석합니다.일부 명령줄 인터프리터에는 자체 언어 외에 REXX 등의 다른 언어의 인터프리터 엔진도 포함되어 있기 때문에 명령줄 인터프리터 내에서 직접 스크립트를 실행할 수 있습니다.

반대로 스크립트 프로그래밍 언어, 특히 평가 함수(REXX, Perl, Python, Ruby 또는 Jython)를 사용하여 명령줄 인터프리터와 필터를 구현할 수 있습니다.일부 운영체제(특히 DOS)에서는 이러한 명령어인터프리터는 제공된 것보다 더 유연한 명령줄 인터페이스를 제공합니다.다른 경우, 이러한 명령어 인터프리터는 언어의 사용자 인터페이스 및 입출력 기능을 사용하여 고도로 맞춤화된 사용자 인터페이스를 제공할 수 있다.

기타 명령줄 인터페이스

명령줄은 사용자와 프로그램 간의 인터페이스를 제공합니다.그런 의미에서 명령줄은 대화 상자 대신 사용할 수 있습니다.편집기 및 데이터베이스는 대체 명령 프로세서를 실행할 수 있는 명령줄을 제공합니다.한편, 커맨드 라인에 다이얼로그 박스가 열리는 옵션이 있는 경우도 있습니다.최신 버전의 'Take Command'에는 이러한 기능이 있습니다.DBase는 대화상자를 사용하여 명령줄을 구성했으며, 명령줄을 사용하기 전에 추가로 편집할 수 있습니다.

BASIC, diskpart, Edlin, QBASIC 등의 프로그램은 모두 명령줄 인터페이스를 제공하며, 이들 중 일부는 시스템셸을 사용합니다.Basic은 8비트 인텔 컴퓨터의 기본 인터페이스를 기반으로 합니다.계산기는 명령줄 또는 대화 상자 인터페이스로 실행할 수 있습니다.

Emacs는 미니버퍼 형식으로 명령줄 인터페이스를 제공합니다.Emacs 표준 텍스트 편집 지원을 사용하여 명령어와 인수를 입력할 수 있으며 출력은 다른 버퍼에 표시됩니다.

Adventure나 King's Quest 1-3같은 많은 텍스트 모드 게임이 있는데, 이 게임들은 화면 하단의 사용자 입력 명령에 의존합니다.'링 받기'나 '보기'와 같은 명령어를 입력함으로써 문자를 제어할 수 있다.프로그램은 캐릭터가 어떻게 보는지를 설명하는 텍스트를 반환하거나 액션을 수행합니다.더글러스 아담의 동명 책을 원작으로 한 인터랙티브 픽션인 텍스트 어드벤처 The Hitchhiker's Guide to the Galaxy는 텔레타이프 형식의 명령줄 게임이다.

이러한 인터페이스 중 가장 주목되는 것은 표준 스트림인터페이스입니다이 인터페이스에서는 어떤 명령어의 출력을 다른 명령어의 입력으로 전달할 수 있습니다.텍스트 파일은 두 가지 용도로도 사용할 수 있습니다.이를 통해 파이프, 필터 및 리다이렉션의 인터페이스가 제공됩니다.Unix에서는 디바이스도 파일이기 때문에 stdin, stdout 및 stderr에 사용되는 셸의 일반적인 파일 유형은 tty 디바이스 파일입니다.

다른 명령줄 인터페이스를 사용하면 셸 프로그램이 도우미 프로그램을 실행하여 문서를 시작하거나 프로그램을 시작할 수 있습니다.명령어는 셸에 의해 내부적으로 처리된 후 다른 프로그램으로 전달되어 문서를 실행합니다.Windows 및 OS/2의 그래피컬 인터페이스는 다른 프로그램(콘솔 또는 그래픽)에 전달되는 명령줄에 크게 의존합니다.이러한 명령줄은 보통 사용자 콘솔을 표시하지 않고 처리됩니다.

OS/2 E 에디터 및 기타 IBM 에디터와 같은 프로그램은 일반적으로 셸을 위한 명령줄을 처리할 수 있으며 출력은 문서 창에 직접 배치됩니다.

웹 브라우저의 URL 입력 필드를 명령줄로 사용할 수 있습니다.을 "시작"하거나 브라우저 구성에 액세스하거나 검색을 수행하는 데 사용할 수 있습니다."인터넷의 명령줄"로 불려온 구글은 알려진 [36]형식의 검색 매개변수를 감지하면 도메인별 검색을 수행합니다.이 기능은 브라우저 필드 또는 Google 웹 사이트에서 검색이 트리거되는지 여부에 관계없이 제공됩니다.

브라우저에 명령줄 응용 프로그램을 독립 실행형 웹 응용 프로그램 또는 더 큰 [37]응용 프로그램의 일부로 쓸 수 있는 JavaScript 라이브러리가 있습니다.이러한 웹사이트의 예로는 DuckDuckGo[38]대한 CLI 인터페이스가 있습니다.브라우저에서 서버 명령줄 인터페이스에 액세스할 수 있는 웹 기반 SSH 응용 프로그램도 있습니다.

PC상의 많은 비디오 게임에는 콘솔이라고 불리는 명령줄 인터페이스가 탑재되어 있습니다.일반적으로 게임 개발자와 모드 개발자에 의해 디버깅 목적으로 사용되며 게임의 일부를 속이거나 건너뛸 때도 사용됩니다.

「 」를 참조해 주세요.

메모들

  1. ^ 예를 들어 DR-DOS 7.03DEBUG 명령어의 포괄적인 내부 도움말 시스템이 있습니다.이 명령어는 다음 명령을 통해 호출할 수 있습니다.??디버깅 프롬프트에서 (기본값뿐만 아니라)?개요)를 참조해 주세요.특정 도움말 페이지는 다음을 통해 선택할 수 있습니다.?n(어디서)n는 페이지 번호입니다).또한 특정 명령어에 대한 도움말을 표시하려면 다음 명령어 이름을 지정합니다.?, f.e.?D다양한 덤프 명령에 대한 도움말을 호출합니다(예:D 이러한 기능 중 일부는 DR DOS 3.41SID86GEMSID에서 이미 지원되고 있습니다.
  2. ^ DOS와 유사한 운영 체제의 명령어 구문을 설명할 때 유의해야 할 차이점은 다음과 같습니다.Windows Server 2003 R2 의 메뉴얼에서는, 「사용자가 입력할 필요가 있는 정보」에 이탤릭체를 사용하고 있습니다만, Windows Server 2008 의 메뉴얼에서는, 꺾쇠 괄호를 사용하고 있습니다.이탤릭체는 내부 "help" 명령어로 표시할 수 없습니다.단, 꺾쇠 괄호는 문제가 없습니다.
  3. ^ ASCII 아트만 빼고

레퍼런스

  1. ^ "Unix Shells". Archived from the original on 2007-11-08. the notion of having a replaceable "command shell" rather than a "monitor" tightly integrated with the OS kernel tends to be attributed to Multics.
  2. ^ a b "The Origin of the Shell". www.multicians.org. Retrieved 2017-04-12.
  3. ^ Metz, Cade (2013-01-03). "Say Bonjour to the Internet's Long-Lost French Uncle". Wired. Retrieved 2017-07-31.
  4. ^ Mazières, David (Fall 2004). "MULTICS - The First Seven Years". Advanced Operating Systems. Stanford Computer Science Department. Retrieved 2017-08-01.
  5. ^ a b Jones, M. (2011-12-06). "Evolution of shells in Linux". developerWorks. IBM. Retrieved 2017-08-01.
  6. ^ "GNU BASH Reference".
  7. ^ "Microsoft Windows Command Shell Overview".
  8. ^ SID Users Guide (PDF). Digital Research. 1978. 595-2549. Archived (PDF) from the original on 2019-10-20. Retrieved 2020-02-06. (4+69페이지)
  9. ^ SID-86 User's Guide for CP/M-86 (2 ed.). Digital Research. August 1982 [March 1982]. SID86UG.WS4. Archived from the original on 2019-10-20. Retrieved 2020-02-06. [1] (NB).Emmanuel Roche에 의해 Q, SR 및 Z 명령이 추가된 매뉴얼의 재입력 버전입니다.)
  10. ^ a b c d e f g h i j k Paul, Matthias R. (1997-07-30). NWDOS-TIPs – Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds. MPDOSTIP. Release 157 (in German) (3 ed.). Archived from the original on 2017-09-10. Retrieved 2014-09-06. (NB. NWDOSTIP).TXT는 Novell DOS 7 및 OpenDOS 7.01관한 포괄적인 작업이며, 문서화되어 있지 않은 많은 기능 및 내부 기능에 대한 설명을 포함합니다.저자의 더 큰 MPDOSTIP.Z의 일부입니다.IP 수집은 최대 2001년까지 유지되며 동시에 많은 사이트에 배포되었습니다.제공된 링크는 HTML 변환된 이전 버전의 NWDOSTIP를 가리키고 있습니다.TXT 파일).
  11. ^ Parker, Steve (2011). "Chapter 11: Choosing and using shells". Shell Scripting: Expert Recipes for Linux, Bash and more. Programmer to programmer. Indianapolis, USA: John Wiley & Sons. p. 262. ISBN 978-111816632-1. The shell has four different command prompts, called PS1, P52, P53, and PS4. PS stands for Prompt String.
  12. ^ RISC OS 3 User Guide (PDF). Acorn Computers Limited. 1992-03-01. p. 125.
  13. ^ a b c d Brothers, Hardin; Rawson, Tom; Conn, Rex C.; Paul, Matthias R.; Dye, Charles E.; Georgiev, Luchezar I. (2002-02-27). 4DOS 8.00 online help.
  14. ^ Paul, Matthias R. (1998-01-09). DELTREE.BAT R1.01 Extended file and directory delete. Caldera, Inc. Archived from the original on 2019-04-08. Retrieved 2019-04-08.
  15. ^ DR-DOS 7.03 WHATSNEW.TXT — Changes from DR-DOS 7.02 to DR-DOS 7.03. Caldera, Inc. 1998-12-24. Archived from the original on 2019-04-08. Retrieved 2019-04-08.
  16. ^ "Argument Syntax (The GNU C Library)". www.gnu.org. Retrieved 2021-07-09.
  17. ^ a b c Paul, Matthias R. (2002-05-13). "[fd-dev] mkeyb". freedos-dev. Archived from the original on 2018-09-10. Retrieved 2018-09-10. […] CPI /H […] CPI [@] [@] [/? /Help[:topic]] [/! /About] […] [? &] […] /?, /Help Display this help screen or specific help for a topic (+) […] /!, /About Display the 'About' info screen […] /Cpifile (+) .CPI/.CP file name <EGA.CPI>; extension: <.CPI>; CPI.EXE=StdIn […] /Report Report file name <''=StdOut>; extension: <.RPT> […] /Style (+) Export <0>-6=BIN-raw/ROM/RAM/PSF0/1/SH/CHED; 7-12/13-18/19-24=ASM-hex/dec/bin/ip/il/p/l/mp/ml […] CPI /H:C […] Overview on codepage file parameter usage: […] CPI /H:S […] Overview on /Style parameters: […] ?, & Online edit mode (prompts for additional parameter input) […]
  18. ^ a b Paul, Matthias R. (2002-01-09). "SID86". Newsgroup: comp.os.cpm. Retrieved 2018-04-08. […] Since the DR-DOS 7.03 DEBUG is still based on the old SID86.EXE, I suggest to run DEBUG 1.51 and enter the extended help system with ?? from the debug prompt. This will give you eight screens full of syntax and feature help. Some of these features were also supported by older issues. […]
  19. ^ a b Paul, Matthias R.; Frinke, Axel C. (2006-01-16). FreeKEYB - Advanced international DOS keyboard and console driver (User Manual) (v7 preliminary ed.).
  20. ^ CCI Multiuser DOS 7.22 GOLD Online Documentation. Concurrent Controls, Inc. (CCI). 1997-02-10. HELP.HLP. (NB. 심볼 명령 디버거 SID86은 다음과 같은 짧은 도움말 화면을 제공합니다.?및 포괄적인 도움말??.)
  21. ^ Paul, Matthias R. (1997-05-24) [1991]. DRDOSTIP.TXT – Tips und Tricks für DR DOS 3.41 - 5.0. MPDOSTIP (in German) (47 ed.). Archived from the original on 2016-11-07. Retrieved 2016-11-07.
  22. ^ "The Open Group Base Specifications Issue 7, Chapter 12.1 Utility Argument Syntax". The Open Group. 2008. Retrieved 2013-04-07.man-pages(7)Linux Conventions and Miscellany Manual (NB)Unix 계열 운영체제에서의 명령어 설명에 관한 규칙).
  23. ^ "Command shell overview". Windows Server 2003 Product Help. Microsoft. 2005-01-21. Retrieved 2013-04-07.
  24. ^ "Command-Line Syntax Key". Windows Server 2008 R2 TechNet Library. Microsoft. 2010-01-25. Retrieved 2013-04-07.
  25. ^ Kernighan, Brian W.; Pike, Rob (1984). The UNIX Programming Environment. Englewood Cliffs: Prentice-Hall. ISBN 0-13-937699-2.
  26. ^ Pouzin, Louis. "The Origin of the Shell". Multicians.org. Retrieved 2013-09-22.
  27. ^ "Remembering Windows 95's launch 15 years later". 2010-08-24.
  28. ^ "A history of Windows". windows.microsoft.com. Archived from the original on 2015-03-01.
  29. ^ "Windows POSIX shell compatibility".
  30. ^ "master - platform/external/mksh - Git at Google". android.googlesource.com. Retrieved 2018-03-18.
  31. ^ "Android adb shell - ash or ksh?". stackoverflow.com. Retrieved 2018-03-14.
  32. ^ "Android sh source". GitHub. Archived from the original on 2012-12-17.
  33. ^ "Android toolbox source". GitHub.
  34. ^ "Configuration Fundamentals Configuration Guide, Cisco IOS Release 15M&T". Cisco. 2013-10-30. Using the Command-Line Interface. The Cisco IOS command-line interface (CLI) is the primary user interface…
  35. ^ "Command-Line Interface Overview". www.juniper.net. Retrieved 2018-03-14.
  36. ^ "Google strange goodness".
  37. ^ jQuery 터미널 에뮬레이터
  38. ^ 덕덕고 TTY

외부 링크

  • The Roots of DOS David Hunter, Softalk for the IBM Personal Computer 1983년 3월2000년 이후 Patersontech.com에서 아카이브.
  • 명령줄 참조:Microsoft TechNet 데이터베이스 "명령줄 참조"