터미널 파워 유저와 초보자를 가르는 결정적인 차이 중 하나는 ‘과거에 입력했던 명령어를 얼마나 효율적으로 재사용하는가’입니다. 복잡한 명령어를 다시 타이핑하거나, 위쪽 화살표(↑) 키를 수십 번 누르는 것은 시간 낭비일 뿐입니다.
이번 포스팅에서는 기본적인 히스토리 검색(Ctrl+R)을 넘어, **fzf**라는 퍼지 파인더(Fuzzy Finder)를 이용해 명령어 히스토리를 게임처럼 검색하고 활용하는 혁신적인 방법을 소개합니다.
## 기본기: history 와 Ctrl+R
history: 지금까지 입력한 명령어 목록을 순서대로 보여줍니다.history | grep "docker"처럼grep과 조합하여 특정 명령어를 찾을 수 있습니다.Ctrl+R: **역방향 검색(reverse-i-search)**을 시작합니다. 키워드를 입력하면, 해당 키워드가 포함된 가장 최근 명령어를 보여줍니다.Ctrl+R을 반복해서 누르면 더 과거의 명령어로 이동합니다. 유용하지만, 원하는 명령어를 찾기 위해 여러 번 키를 눌러야 하는 불편함이 있습니다.
## 게임 체인저: fzf (Fuzzy Finder)
fzf는 터미널용 대화형 필터링 도구입니다. 단어의 일부만, 혹은 순서가 틀려도 ‘대충 비슷하게’ 찾아주는 놀라운 검색 능력을 가지고 있습니다. 이를 명령어 히스토리 검색에 연동하면 생산성이 극적으로 향상됩니다.
1. fzf 설치하기
Homebrew를 사용하면 간단하게 설치할 수 있습니다.
brew install fzf # fzf의 키 바인딩 및 자동 완성 스크립트 설치 $(brew --prefix)/opt/fzf/install
설치 과정에서 몇 가지 질문이 나오는데, 모두 y를 눌러 기본 설정을 적용합니다.
2. fzf로 히스토리 검색하기 (Ctrl+R의 재탄생)
설치 후 터미널을 다시 시작하고 Ctrl+R을 눌러보세요. 이전의 한 줄짜리 검색창 대신, 전체 히스토리 목록이 나타나는 대화형 검색 인터페이스가 나타납니다.
- 검색: 그냥 키워드를 입력하기 시작하면 됩니다.
docker build를 찾고 싶다면dck bld처럼 일부만 입력해도 즉시 필터링됩니다. - 이동: 화살표 키로 원하는 명령어를 선택하고,
Enter키를 누르면 바로 실행됩니다.Tab키를 누르면 현재 프롬프트에 해당 명령어가 입력되어 수정할 수 있습니다.
## fzf의 무한한 확장성
fzf는 히스토리 검색뿐만 아니라 다른 명령어와 조합하여 무한하게 활용할 수 있습니다.
- 대화형으로 프로세스 종료하기:
# ps aux의 결과를 fzf로 보고, 선택한 줄에서 PID를 뽑아 kill
kill -9 $(ps aux | fzf | awk '{print $2}')
- 파일 및 디렉터리 빠르게 찾고 이동하기:
Ctrl+T: 현재 경로 하위의 모든 파일 및 디렉터리를fzf로 검색하여 경로를 입력해 줍니다.Alt+C: 하위 디렉터리를fzf로 검색하여 바로cd명령어를 실행합니다.
## 결론
fzf를 히스토리 검색에 연동하는 것은 터미널 생산성을 높이는 가장 빠르고 효과적인 방법 중 하나입니다. 단축키 Ctrl+R을 누르는 습관을 fzf의 강력한 검색 기능으로 대체하는 순간, 여러분의 터미널 작업 속도는 이전과는 비교할 수 없을 정도로 빨라질 것입니다.