명령줄 완료

Command-line completion
Bash의 명령줄 완료 예제.
PowerShell에서 Intellisense를 사용한 명령줄 완료 예제.

명령줄 완료(또한 탭 완료)는 프로그램이 부분적으로 입력된 명령을 자동으로 입력하는 명령줄 인터프리터의 일반적인 기능이다.

명령줄 인터프리터는 사용자가 GUI(그래픽 사용자 인터페이스)에서 마우스를 가리키고 클릭하는 것과는 대조적으로 CLI(명령줄 인터페이스)를 사용하여 명령 프롬프트에 명령을 입력하여 기본 운영 체제와 상호 작용할 수 있는 프로그램이다.명령줄 완료 기능을 사용하면 명령, 프로그램 또는 파일 이름의 처음 몇 글자를 입력하고 완료 키를 누를 수 있다(일반적으로).항목의 나머지 부분을 채우기 위해Tab ↹.그런 다음 사용자가 또는 를 눌러 명령을 실행하거나 파일을 여십시오.

명령줄 완료는 이 기사에 첨부된 애니메이션에서 예시한 바와 같이 여러 가지 방법으로 유용하다.일반적으로 액세스되는 명령어, 특히 이름이 긴 명령어에는 도달하기 위해 더 적은 키 입력을 필요로 한다.파일 이름의 철자가 길거나 어려운 명령은 처음 몇 글자를 입력하고 완료 키를 눌러 입력하면 명령이나 파일 이름을 완성할 수 있다.복수의 가능한 보완의 경우, 특히 유닉스 셸과 같은 일부 명령줄 인터프리터들은 그 몇 개의 문자로 시작하는 모든 가능한 보완을 나열할 것이다.사용자는 더 많은 문자를 입력하고 다시 누르면 입력된 문자가 여전히 모호한 경우 새 축소 목록을 볼 수 있으며, 그렇지 않으면 명령/파일 이름을 후행 공백으로 완료할 수 있다.대체 형태의 완료는 입력이 모호할 때 모든 일치하는 결과를 통해 회전한다.

보완적 요소에는 특정 통역자와 그 구성에 따라 명령, 인수, 파일 이름 및 기타 실체가 포함될 수 있다.명령줄 완료는 일반적으로 대화형 모드에서만 작동한다.즉, 완료가 명확하지 않더라도 스크립트배치 파일에서 부분적으로 입력된 명령을 완료하는 것은 호출할 수 없다.이름 탭 완료는 탭를 눌러 명령줄 완료가 호출되는 경우가 많다는 사실에서 비롯된다.

역사

탭 완성은 컴퓨팅 역사에서 일찍 나타났다; SDS 940을 위한 버클리 타임스헤어링 시스템에 등장한 첫 사례 중 하나로, 타이핑된 문자열이 모호하면 통역관은 아무 것도 하지 않지만, 문자열이 모호하지 않으면 사용자의 명령 없이 자동으로 완성된다.이 특징은 너무 잦은 오타에도 잘 먹히지 않았고, 복도 엇갈렸다.이 기능은 중요한 변화를 일으킨 Tenex의 개발자들에 의해 모방되었다.테넥스는 "탈출 인식"을 사용했는데, 이 인식은 사용자가 이스케이프 키를 치지 않는 한(이름 등) 자동 완성을 시도하지 않는다.이 도메인은 또한 버클리 시스템의 프로그램 이름만에서 테넥스의 프로그램 이름과 파일 둘 다로 확장되었다.[1]Tenex 후예 TOPS-20은 COMND JSYS 시스템 호출을 통해 명령 통역기에서 운영 체제로 명령줄 완료를 이동시켜 다른 사용자 애플리케이션에 사용할 수 있도록 했다.[2]거기서부터 그것은 유닉스에 의해 빌렸다.

파일을 열려면 다음과 같이 하십시오.inference-to-command-line-completion.html(Firefox 포함)은 다음을 입력하십시오.

Firefox-to-Command line-properties.properties

이것은 타이핑을 하기에는 긴 명령이다.대신 우리는 명령줄 완료를 사용할 수 있다.

완료 확인 요청

다음 예는 바쉬에서 명령줄 완성이 어떻게 작동하는지 보여준다.다른 명령줄 쉘은 약간 다르게 수행될 수 있다.

먼저 명령의 처음 세 글자를 입력한다.

전방에

그리고 나서 우리는 누르면 "fir"로 시작하는 우리 시스템의 유일한 명령은 "firefox"이기 때문에, 그것은 다음과 같이 완성될 것이다.

파이어폭스

그런 다음 파일 이름을 입력하십시오.

파이어폭스 i

그러나 이번에 소개-명령줄-완료.html만이 현재 디렉토리에서 "i"로 시작하는 파일이 아니다.디렉토리에는 파일 소개-bash.html소개-firefox.html도 포함되어 있다.시스템에서는 이러한 파일 이름 중 어떤 파일을 입력할지 결정할 수 없지만, 파일이 "소개-"로 시작해야 한다는 것을 알고 있으므로 다음 명령을 수행할 수 있다.

파이어폭스 소개-투-

이제 "c"를 입력하면:

파이어폭스 도입부

이 버튼을 누르면 전체 파일 이름으로 완료된다.

Firefox-to-Command line-properties.properties

간단히 말하면 다음과 같이 입력하십시오.

발광의Tab ↹Tab ↹Tab ↹

이것은 단지 8개의 키 입력일 뿐인데, 이것은 우리가 명령줄 완성을 사용하지 않고 입력하는데 필요한 52개의 키 입력보다 상당히 적은 것이다.

회전완료

다음 예는 Windows의 CMD 사용과 같이 명령줄 완료가 회전 완료와 함께 작동하는 방식을 보여준다.

다음을 완료할 때까지 완료 촉구와 동일한 절차를 따르십시오.

파이어폭스 i

우리는 결과를 가지고 한 번 누른다.

Firefox 소개 to expective.production.proper

다시 누르면 다음과 같은 결과를 얻을 수 있다.

Firefox-to-Command line-properties.properties

간단히 말하면 다음과 같이 입력하십시오.

피리Tab ↹Tab ↹Tab ↹

이것은 단지 일곱 번의 키 입력으로, 프롬프트 방식의 완성에 필적할 뿐이다.이것은 통역사가 어떤 가능성을 통해 회전할 것인지 아는 경우에 가장 효과적이다.

여러 명령줄 인터페이스에서 완료

  • Bash(대부분 리눅스 배포에서 기본 쉘)와 ksh를 포함한 유닉스 쉘은 고급스럽고 사용자 정의 가능한 완성 기능의 오랜 전통을 가지고 있다.[3]
    • 바시 프로그램 가능 완료,complete그리고compgen명령은[4] 2000년[5] 2.04[3] 베타 버전 이후 사용할 수 있으며 최소한 Pathname과 파일 이름 완성 기능을 제공한다.
    • KornShell 사용자의 경우 파일 이름 완성은 EDITOR 변수의 값에 따라 달라진다.EDERTER가 vi로 설정된 경우 이름의 일부를 입력한 다음 \, EMAX로 설정된 경우 이름의 일부를 입력한 다음 , Escape.
    • Z 셸(zsh)은 완전하게 프로그램 가능한 완성을 위한 지원을 개척하여 사용자가 셸 자체와 무관한 다양한 명령의 파라미터를 자동으로 완성하도록 할 수 있게 했으며, 셸은 적절한 파라미터 유형뿐만 아니라 알려진 스위치의 정의로 셸을 프라이밍함으로써 이루어진다.이를 통해 사용자는 tar xzf를 입력하고 셸이 입력 매개 변수와 호환되지 않는 파일을 건너뛰면서 실제 파일 시스템에서만 tarred gzip 아카이브 작업을 완료할 수 있다.현대적인 zsh 설치에는 500개 이상의 명령에 대한 완료 정의가 함께 제공된다.
    • Tcsh는 를 사용하여 활성화된 기본 파일, 명령 및 변수 이름 완성 기능을 제공한다.'완전' builtin 명령은 완전한 프로그램 가능 완료를 제공한다.소스 코드는 완성 구문의 많은 예를 포함하는 'complete.tcsh' 파일과 함께 제공된다.
  • 객체 지향 프로그래밍마이크로소프트기반으로 하는 마이크로소프트의 확장 가능한 명령 셸인 Windows PowerShell.기존의 유닉스 셸과 유사한 강력하고 사용자 정의 가능한 완성 기능을 제공하는 NET Framework.[6][7][citation needed]
  • cmd.윈도 NT 기반 시스템의 exe 명령 프로세서가 기본 완료를 지원한다.일치하는 디렉토리 이름에만 별도의 키 바인딩을 사용할 수 있다.
  • cmd.exe /F:ON은 파일 및 디렉토리 이름 완료 문자(기본적으로 ^F 및 ^D)를 활성화한다.자세한 내용은 cmd.exe /?를 참조하십시오.
  • TweakUI를 사용하여 파일 이름과 디렉토리 이름 완료에 사용되는 키를 구성할 수 있다.[8]
  • MS-DOS 명령 프로세서 명령.COM에서 명령줄 완료가 없음: 탭 키를 누르면 커서가 으로 이동됨.단, COMMANDFreeDOS 버전인 4DOS와 같이 MS-DOS를 위한 다양한 향상된 쉘.COM 또는 향상된 DOSKEY.COM 기능 Unix-style 탭 완료.
  • 파일 관리 기능과는 별개로 Windows(윈도우)의 명령 내역과 라인 완료 기능을 제공한다.

참고 항목

참조

  1. ^ "Origins and Development of TOPS-20". www.opost.com.
  2. ^ DECSYSTEM-20 어셈블리 언어 안내서
  3. ^ a b "Working more productively with bash 2.x/3.x". www.caliban.org.
  4. ^ "Bash Reference Manual". tiswww.case.edu.
  5. ^ "Index of /gnu/bash". ftp.swin.edu.au.
  6. ^ "The PowerShell Guy". thepowershellguy.com.
  7. ^ "The PowerShell Guy". thepowershellguy.com.
  8. ^ "Simon Peyton Jones at Microsoft Research".

외부 링크

유닉스 셸

Windows 명령 인터프리터

(각 기사의 "적용 대상" 섹션을 반드시 확인하십시오.)