Linux에서 편리한 검색 툴 fzf를 써 보자!
안녕하세요? 굉장히 오랜만에 글을 작성하네요 ㅠㅠ 대학원에 입학하고 나서 심리적 압박이 꽤나 커진 탓인 것 같습니다.
리눅스 사용자라면 정말 유용하게 사용할 수 있는 툴인 fzf
를 소개해 드리려고 합니다.
fzf
의 풀네임은 Fuzzy Finder로, 여러 강력한 검색 기능을 지원합니다. 저는 그 중에서도 특히 커맨드 히스토리를 편리하게 검색할 수 있는 기능 때문에 한번 써보기로 결심했습니다. 리눅스를 쓰다 보면 같은 명령어를 반복 입력할 일이 많잖아요? 그런데 오래 전에 입력한 커맨드는 화살표로 하나씩 거슬러 올라가기엔 무리가 있죠. 기본 제공하는 Ctrl + R 키는 하나만 매칭되는 등 부족한 점이 많고요. fzf
로 신세계를 경험했습니다.
지금까지 몰랐던 탓에 정말 많은 손해를 본 기분이네요…
그럼 바로 설치방법부터 들어가겠습니다.
설치
Linux나 Mac 사용자라면 여러분이 사용하시는 패키지 매니저(apt
, brew
등)로 쉽게 설치를 할 수 있습니다만, 패키지 매니저로 받으면 꽤나 옛날 버전을 받게 됩니다. 최신 버전을 받으려면 아래와 같이 직접 Github 소스에서 다운로드 받는 것이 좋습니다.
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
참고로 이때 설치 스크립트가 Key Binding을 활성화할거냐고 묻는데,
Do you want to enable fuzzy auto-completion? ([y]/n) y
Do you want to enable key bindings? ([y]/n) y
이때 Y를 하면 Shell Integration을 직접 설정할 필요가 없습니다.
Shell Integration
fzf
는 명령어뿐만 아니라 쉘에서 바로 사용할 수 있는 편리한 단축키를 제공합니다. 이를 사용하기 위해서는 fzf
설치 이후에 별도로 명령어를 실행할 필요가 있습니다.
Github 매뉴얼에도 안내가 되어 있는데, 아래 명령어를 실행시켜 주기만 하면 됩니다.
# Set up fzf key bindings and fuzzy completion
eval "$(fzf --bash)"
위 명령어는 bash
쉘 기준입니다. zsh
의 경우 --zsh
옵션을 주면 됩니다.
단, --bash
, --zsh
옵션은 fzf
의 버전이 0.48.0
이상일 때에만 사용이 가능합니다. 구버전에서는 다음과 같이 직접 쉘 스크립트를 source
해주어야 합니다. 특히 현시점에서 sudo apt install
을 사용해 fzf
를 설치하면 0.29 버전이 설치되기 때문에 아래 방식으로 해야 합니다.
source /usr/share/fzf/shell/key-bindings.bash
인터넷에는 대부분 위와 같이 안내가 되어 있습니다.
하지만 fzf
디렉토리가 위에 없는 경우도 있는데 저 같은 경우는 /usr/share/doc/fzf/
에 위치해 있었습니다. 그래서 다음 명령어를 입력해야 했습니다.
source /usr/share/doc/fzf/examples/key-bindings.bash
~/.bashrc
에 위 명령어를 추가해 주면 영구적으로 key binding이 적용되겠죠?
사용 가능한 단축키 목록
단축키 | 설명 |
---|---|
Ctrl + t |
현재 디렉토리의 파일 및 폴더를 퍼지 검색하여 선택합니다. 선택 후 Enter 키를 누르면 선택한 파일 경로가 현재 커맨드 라인에 입력됩니다. |
Ctrl + r |
쉘 명령어 히스토리를 퍼지 검색하여 선택하고 실행합니다. |
Alt + c |
디렉토리를 퍼지 검색하여 선택하고, 선택한 디렉토리로 이동합니다 (cd). |