왜 CLI 도구인가
에디터만 바꿔도 생산성이 바뀌듯, 터미널 주변을 현대화하면 매일의 마찰이 크게 줄어든다. 아래 20개 중 3개만 익혀도 평생 쓴다.
🔍 검색·탐색
1. fzf — 퍼지 파인더
모든 것의 기본. Ctrl-R 히스토리 검색, **<Tab> 경로 완성.
vim $(fzf)
git checkout $(git branch | fzf)
2. ripgrep(rg) — 초고속 grep
.gitignore 존중, 병렬 탐색. grep보다 5~10배 빠르다.
rg "TODO" --type ts
3. fd — find 대체
직관적인 인자, 컬러 출력, 기본이 정규식.
fd '\.test\.ts$'
4. zoxide — cd 스마트 버전
자주 간 디렉터리를 학습해 z foo로 점프.
📁 파일 보기·편집
5. bat — cat + 문법 하이라이트
bat src/index.ts
bat --diff file.ts # git diff 프리뷰
6. eza — ls 대체
git 상태·트리·아이콘 표시. ls-tree보다 예쁜 결과.
eza -l --git --icons --tree --level 2
7. delta — git diff pager
git diff를 IDE 수준으로 예쁘게. side-by-side 모드도 지원.
# ~/.gitconfig
[core] pager = delta
[delta] side-by-side = true
8. dust — du 대체
디스크 점유율을 트리와 바 그래프로.
🖥 시스템 모니터
9. btop — htop 대체
컬러풀한 프로세스 모니터. CPU·메모리·네트워크·디스크 통합.
10. procs — ps 대체
트리·컬러·정렬. 가독성 압도적.
11. bandwhich — 네트워크 사용량
프로세스별 실시간 업·다운 대역폭. 디버깅용 필수.
🔧 Git 워크플로
12. lazygit — git TUI
스테이징·커밋·rebase를 키보드로. 로그 그래프 탐색도 압도적. git 체험의 축이 바뀐다.
13. gh — GitHub CLI
PR 생성·리뷰·머지, 이슈 관리, 워크플로 재실행을 터미널에서.
gh pr create -f
gh pr checkout 123
gh run watch
14. git-absorb — 자동 fixup
변경 사항을 가장 관련 깊은 기존 커밋에 자동 흡수. rebase 정리용.
🪟 세션·터미널
15. zellij — 현대적 tmux
tmux보다 설정이 단순하고 UI가 친절. 레이아웃 파일로 워크스페이스 저장·복원.
16. starship — 초고속 프롬프트
shell 중립(bash/zsh/fish/nu). git·venv·node 버전 등을 10ms 이내 표시.
17. atuin — shell 히스토리 공유
여러 머신의 shell 히스토리를 암호화해 동기화. 맥·리눅스·SSH 세션 사이를 이어서 쓸 수 있다.
🧰 유틸·자동화
18. just — Makefile의 현대판
Makefile 문법 지옥 없이 스크립트 태스크 러너. .justfile에 레시피.
# justfile
dev: install; npm run dev
test: ; bun test
deploy VERSION: ; fly deploy -v {{VERSION}}
19. entr — 파일 변경 감지 → 명령 실행
ls src/*.ts | entr -c npm test
20. httpie / xh — 예쁜 curl
JSON 직관적, 컬러 출력, 세션 저장. API 디버깅이 즐거워진다.
xh POST api.example.com/users name=Alice role=admin
설치 — Homebrew 한 줄
brew install fzf ripgrep fd zoxide bat eza git-delta dust \
btop procs bandwhich lazygit gh starship atuin \
just entr xh zellij
Ubuntu·Arch는 각 도구 README 참고. 대부분 apt·pacman·cargo install로 설치된다.
셸 설정 필수 별칭
# ~/.zshrc
alias ls='eza --icons'
alias ll='eza -l --git --icons'
alias cat='bat --paging=never'
alias cd='z'
eval "$(starship init zsh)"
eval "$(zoxide init zsh)"
eval "$(atuin init zsh)"
# fzf 키 바인딩
source <(fzf --zsh)
일주일 도입 플랜
- 1~2일: fzf, ripgrep, bat, eza — 매일 쓰는 명령 교체
- 3~4일: lazygit, delta — git 워크플로 정비
- 5일: starship, zoxide — 프롬프트와 cd 개선
- 6~7일: zellij, just, atuin — 세션·태스크·히스토리
자주 묻는 질문
전부 다 써야 하나?
아니다. fzf + ripgrep + bat + lazygit 4개만 익혀도 체감 변화가 크다. 나머지는 필요할 때 찾아 쓰면 된다.
Linux 서버에도 설치해야 하나?
서버는 기본 도구(grep/find/ls) 유지 권장. 로컬 개발 머신과 서버의 툴을 섞으면 습관이 꼬인다.
Windows는?
WSL2 + 위 설치 동일. 네이티브 PowerShell에서 쓰려면 Scoop으로 상당수 설치 가능하지만 경험은 WSL이 훨씬 자연스럽다.
댓글 0