카테고리 없음

bash auto-completion on Linux

필유아사 2022. 5. 3. 14:07

소개

Bash용 kubectl 완료 스크립트는 kubectl completion bash 명령을 사용하여 생성할 수 있습니다. 셸에서 완성 스크립트를 소싱하면 kubectl 자동 완성이 활성화됩니다.

그러나 완료 스크립트는 bash-completion 에 따라 다르므로 이 소프트웨어를 먼저 설치해야 합니다(bash-completion을 실행하여 이미 설치되어 있는지 테스트할 수 있음kubectl completion bash).

$ type _init_completion
_init_completion is a function
_init_completion () 
{ 
    local exclude= flag outx errx inx OPTIND=1;
    while getopts "n:e:o:i:s" flag "$@"; do
...

오류가 발생할 경우 bash-completion을 설치합니다.

 

bash-completion 설치

bash-completion은 많은 패키지 관리자가 제공합니다. apt-get install bash-completion또는 yum install bash-completion등 으로 설치할 수 있습니다 .

위의 명령어는 /usr/share/bash-completion/bash_completion을 생성합니다.

셸을 다시 로드하고 type _init_completion 명령이 성공하면 이미 설정된 것입니다. 그렇지 않으면 ~/.bashrc파일에 다음을 추가합니다.

source /usr/share/bash-completion/bash_completion

type _init_completion을 입력하여 bash-completion이 올바르게 설치되었는지 확인합니다.

kubectl 자동 완성 활성화

kubectl 자동완성 스크립트가 쉘 로그인 시 적용되도록 설정합니다.

bash

echo 'source <(kubectl completion bash)' >>~/.bashrc
echo 'source <(kubeadm completion bash)' >>~/.bashrc

kubectl에 대한 별칭이 있는 경우 해당 별칭으로 작업하도록 셸 완성을 설정합니다.

echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -F __start_kubectl k' >>~/.bashrc