bash 자동 완성(auto completion) 기능으로 커맨드라인 생산성 높이기


개요

bash 는 tab 키로 명령어나 파일명을 자동 완성하는 기능을 제공하므로 타이핑을 줄이고 실수를 방지할 수 있습니다. 하지만 다양한 Linux command line 명령어가 있고 명령어마다 상이한 문법과 옵션을 제공하므로 경험 많은 사용자라도 이 많은 옵션들을 다 기억하는 것은 어렵습니다.


예로 git 이나 /wiki/spaces/LINC/pages/887423400 는 많은 하위 명령어와 이에 따른 옵션을 제공하므로 외우기가 어려우므로 사용할 때마다 manual 이나 구글링을 통해서 사용법을 검색해 봐야 합니다.


bash completion 은 이런 문제를 해결해주는 패키지로 bash 에서 제공하는 내장 명령어인 complete, compgen, compopt 를 활용해서 주요 명령어별 옵션을 미리 등록해 놓았습니다.

이 기능을 사용하면 tab 키로 명령어와 옵션을 자동 완성할수 있게 해 주므로 자주 사용하지 않는 명령어라도 쉽게 사용해서 command line 생산성을 높여주고 실수를 최소화할수 있도록 도와줍니다.

설치

bash completion 은 다음 패키지를 설치하면 사용할 수 있습니다.

RHEL/CentOS

RHEL/CentOS 7, 8은 다음 명령어로 설치하면 됩니다.

sudo yum install bash-completion


RHEL/CentOS 7 은 다음 추가 패키지를 제공하므로 EPEL YUM 저장소 에서 설치할 수 있습니다.

yum install bash-completion-extras


Ubuntu

Ubuntu 에서는 다음 명령어로 설치하면 됩니다.

sudo apt install bash-completion

github 에서 직접 설치

github 의 bash completion 저장소를 클론해서 직접 설치해도 됩니다.

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


적용

bash completion 을 적용하려면 logout 하고 다시 로그인하면 자동 완성을 사용할 수 있습니다.

만약 현재 세션에서 자동 완성을 사용할 경우 source 명령어로 설정을 다시 읽어주면 됩니다.

source /etc/profile.d/bash_completion.sh   

같이 보기

Ref