명령 줄 도구에는 어떻게 자동 완성 목록이 있습니까?


24

Ubuntu의 Bash는 도구의 특정 동작 목록을 어떻게 알 수 있습니까?

예를 들어 apt-get 및 tab을 두 번 입력하면 remove, update, upgrade ... etc 만 표시되지만 다른 명령이나 현재 디렉토리의 파일에 대한 작업은 표시되지 않습니다.

Go에서 명령 줄 도구를 개발 중이며이를 지원하는 배포판에이 기능을 제공하려고합니다.


1
제목과 태그에서 "우분투"를 삭제했습니다. 일반적인 질문으로 더 낫기 때문입니다 (답변은 배포판에만 국한되지 않음).
goldilocks

1
좋은 질문, 나는 종종 이것을 궁금해했지만, 그것을 찾는 데 시간이 걸리지 않았습니다.
akatakritos '

답변:


25

이것은 bash v4의 완성 기능을 사용하여 수행합니다. 의 완료 코드 apt-getbash-completion패키지에서 제공 하며에 있습니다 /usr/share/bash-completion/completions/apt-get. 완료되었으며 기본 bash-completion패키지에 포함 되지 않은 응용 프로그램은 완료 스크립트를에 배치합니다 /etc/bash_completion.d.

완료는 소싱을 통해로드됩니다 /etc/bash_completion. 이 작업이 수행되는 위치는 데비안 또는 우분투 버전에 따라 다릅니다. 그 결과로 /usr/share/bash-completion/completions와의 모든 정보를 얻을 수 /etc/bash_completion.d있습니다.


고마워요. 따라서 구현은 데비안에서 우분투뿐만 아니라 동일한 배포판의 각 버전에서도 다양합니까?
Amged Rustom

1
@Amgad 모든 배포에서 동일한 방식으로 작동합니다. 유일한 차이점은 파일 위치와 기본 설정일 수 있습니다.
Gilles 'SO- 악마 그만해'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.