별칭은 어떻게 자동 완성되나요?
답변1
명령에 따라 다릅니다.
- 누군가 옵션을 포함하여 가능한 인수 완성을 생성하는 함수를 작성할 수도 있습니다.
/etc/bash_completion.d/*
일부 명령에 대한 기능은 에서(또는 일부 시스템에서는 다른 위치에서) 찾을 수 있습니다 . 이 기능은 다음에 등록되어 있습니다.complete
내장(예를 들어 명령을 누를 때complete -F _find find
bash에 이 함수를 호출하도록 지시합니다 .) 그들은 사용한다_find
Tabfind
compgen
내장 기능은 bash에게 "여기에 가능한 완성이 있습니다"라고 알려줍니다. - 일부 명령의 경우 bash는 인수를 사용하여 명령을 호출
--help
하고 출력을 구문 분석합니다. 이러한 명령은 다음에 등록될 수 있습니다.complete
예를 들어complete -F _longopt ls
._longopt
실제로 고정 목록을 사용하는 대신 명령의 출력을 구문 분석하는 완료 생성 함수입니다. (가능한 완성을 생성하기 위해 명령의 출력을 구문 분석하는 보다 전문화된 다른 완성 함수가 있습니다./etc/bash_completion.d/*
예를 참조하세요.) - 별칭과 같은 것의 경우 완성 기능은 bash의 내부 테이블에서 이를 찾습니다. 이것
complete
-A
별칭 과 같은 해당 옵션이 내장되어 있습니다 .
답변2
파일을 살펴보세요
/etc/bash_completion
그리고 디렉터리의 파일을 살펴보세요.
/etc/bash_completion.d
당신은 알게 될 것입니다.
답변3
Bash 완성 지원은 Debian 및 Ubuntu에서 가능합니다.배쉬 완성 패키지. 또한 일반적으로 다음의 주석 처리를 제거 /etc/bash.bashrc
하거나 .bashrc
bash 완성 파일의 소스 코드를 가져와야 합니다. 다음 내용의 출처는 다음과 같습니다 /etc/bash.bashrc
.
# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
이 일을 위해. 나는 보통 둘 다 주석을 해제합니다. 데비안에서 대화형/로그인 셸을 처리하는 것은 약간 혼란스럽습니다.
기본적으로 조달이 활성화되어 있을 수 있지만 유사한 설명이 다른 배포에도 적용될 수 있습니다.