쉘에서 명령어를 작성하다보면 자주 사용하는 명령어를 반복해서 작성하는게 귀찮을 수 있다. 그런 불편함을 해결하기 위해 우리는 별칭이라는 것을 설정할 수 있다.
별칭 설정하기
예를 들어 kubectl라는 명령어를 자주 사용해 k만 입력해도 kubectl 명령어가 실행되었으면 좋겠다면
# alias 별칭=명령어
echo 'alias k=kubectl' >>~/.bashrc
형태로 명령어를 입력하면 된다.
탭 완성 설정하기
짧은 별칭을 사용하더라도 이어서 오는 명령어가 생각보다 많다. 이 경우 bash shell의 탭 완성 기능을 사용할 수 있다. 'Tab' 버튼만 눌러도 명령어와 오브젝트 이름이 자동 완성이 된다!
자동 완성 기능을 사용하려면 해당 OS의 패키지 매니저로 bash-completion을 설치해야한다.
1. 설치
# RHEL/CentOS 7, 8
sudo yum install bash-completion
# Ubuntu
sudo apt install bash-completion
git hub에서 직접 설치하는 방법도 있다.
git clone https://github.com/scop/bash-completion
cd bash-completion
# make가 없다면 먼저 설치해주자
autoreconf -i # if not installing from prepared release tarball
./configure
make # GNU make required
make check # optional, requires python3 with pytest >= 3.6, pexpect
make install # as root
2. 적용
bash-completion을 적용해준다.
# echo 'source <(명령어 completion bash)' >>~/.bashrc
echo 'source <(kubectl completion bash)' >>~/.bashrc
하지만 여기까지만 진행했을 경우 별칭만 입력했을 때 자동 완성이 동작하지 않는다. 명령어를 전부 입력했을 때만 자동 완성이 동작한다.
별칭으로 탭 완성 설정하기
위의 문제를 해결하기 위해 아래 명령어를 실행한다.
echo 'complete -F __start_kubectl k' >>~/.bashrc
참고
https://kubernetes.io/ko/docs/tasks/tools/included/optional-kubectl-configs-bash-linux/
https://www.lesstif.com/system-admin/bash-auto-completion-100205255.html
'Shell' 카테고리의 다른 글
Syntax error: "(" unexpected (0) | 2022.05.21 |
---|