Contents
see List2026년 커맨드라인은 르네상스를 맞이했다. 기존 Unix 명령어를 대체하는 Rust 기반 고성능 도구들이 주류가 되었고, AI가 통합된 터미널 환경이 개발 생산성을 근본적으로 바꾸고 있다. 지금 당장 설치해야 할 모던 CLI 도구 10가지를 소개한다.
1. bat - cat의 완벽한 대체
cat 명령어에 구문 강조, 행 번호, Git 변경 표시를 추가한 도구다.
# 설치
brew install bat # macOS
sudo apt install bat # Ubuntu/Debian
# 기본 사용 (구문 강조 + 행 번호)
bat src/main.rs
# 특정 행 범위만 출력
bat --line-range 10:20 config.yaml
# Git 변경사항 표시
bat --diff app.py
# 언어 강제 지정
cat Dockerfile | bat --language Dockerfile
# 테마 변경
bat --theme="Dracula" main.go
# 사용 가능한 테마 목록
bat --list-themes
# .bashrc 또는 .zshrc에 alias 설정
alias cat='bat --paging=never'
alias catp='bat' # 페이저 포함
2. fzf - 범용 퍼지 파인더
파일, 명령어 히스토리, Git 브랜치 등 모든 텍스트 입력에 대한 대화형 퍼지 검색을 제공한다.
# 설치
brew install fzf
$(brew --prefix)/opt/fzf/install # 셸 통합 설치
# 파일 검색 (Ctrl+T)
# 명령어 히스토리 검색 (Ctrl+R)
# 디렉토리 이동 (Alt+C)
# 파일 미리보기와 함께 검색
fzf --preview 'bat --color=always --line-range :50 {}'
# Git 브랜치 선택
git branch | fzf | xargs git checkout
# 프로세스 검색하여 kill
ps aux | fzf | awk '{print $2}' | xargs kill -9
# 환경변수 검색
env | fzf
# 멀티 선택 (Tab으로 선택)
git status -s | fzf -m | awk '{print $2}' | xargs git add
# .zshrc에 fzf 기본 옵션 설정
export FZF_DEFAULT_OPTS='
--height 40%
--layout=reverse
--border
--preview "bat --color=always --line-range :100 {} 2>/dev/null || echo {}"'
3. eza - ls의 현대적 대체
exa의 후속 프로젝트로, ls를 대체하는 Rust 기반 파일 목록 도구다. 아이콘, Git 상태, 트리 뷰를 기본 지원한다.
# 설치
brew install eza
# 기본 사용 (아이콘 + 색상)
eza --icons
# 상세 정보 + Git 상태
eza -la --git --icons
# 트리 뷰 (2 depth)
eza --tree --level=2 --icons
# 수정 시간순 정렬
eza -la --sort=modified --reverse
# 특정 파일만 필터링
eza --icons *.ts *.tsx
# Git 무시 파일 제외
eza --git-ignore --icons
# alias 설정
alias ls='eza --icons'
alias ll='eza -la --git --icons'
alias lt='eza --tree --level=2 --icons'
alias la='eza -la --git --icons --sort=modified'
4. zoxide - cd의 지능형 대체
방문 빈도를 학습하여 짧은 키워드로 원하는 디렉토리에 즉시 이동한다.
# 설치
brew install zoxide
# .zshrc에 초기화 추가
eval "$(zoxide init zsh)"
# bash: eval "$(zoxide init bash)"
# 사용법
z projects # ~/projects로 이동 (가장 자주 방문한 매칭 경로)
z my-app # ~/projects/my-app 등으로 이동
z proj app # 여러 키워드 조합 가능
# 대화형 선택 (fzf 연동)
zi # fzf로 후보 목록에서 선택
# 학습 데이터 확인
zoxide query --list
# 특정 경로 제거
zoxide remove /old/path
# cd를 zoxide로 대체
alias cd='z'
5. ripgrep(rg) - grep의 고속 대체
Rust로 작성된 초고속 검색 도구. .gitignore를 자동으로 인식하고, 바이너리 파일을 건너뛴다.
# 설치
brew install ripgrep
# 기본 검색
rg "useState" src/
# 특정 파일 타입만 검색
rg --type ts "interface User"
rg -t py "def main"
# 대소문자 무시
rg -i "error" logs/
# 정규식 검색
rg "TODO|FIXME|HACK" --glob '*.{ts,js}'
# 검색 결과를 파일명만 출력
rg -l "deprecated" src/
# 특정 파일/디렉토리 제외
rg "config" --glob '!node_modules' --glob '!*.min.js'
# 컨텍스트 라인 포함
rg -C 3 "catch" src/ # 전후 3줄
rg -B 2 -A 5 "error" # 전 2줄, 후 5줄
# JSON 출력 (파이프라인 연동)
rg --json "pattern" | jq '.'
6. fd - find의 직관적 대체
# 설치
brew install fd
# 파일명 검색 (정규식 기본)
fd "component" src/
# 확장자로 필터링
fd -e ts -e tsx
# 숨김 파일 포함
fd -H ".env"
# 특정 타입만
fd -t f "config" # 파일만
fd -t d "test" # 디렉토리만
# 실행 명령 결합
fd -e tmp -x rm {} # .tmp 파일 모두 삭제
fd -e ts -x wc -l {} # .ts 파일별 행 수
# 크기 필터
fd -S +10M # 10MB 이상 파일
# 수정 시간 필터
fd --changed-within 1d # 24시간 이내 수정된 파일
7. delta - Git diff를 아름답게
# 설치
brew install git-delta
# Git 설정에 delta 연동
# ~/.gitconfig
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
[delta]
navigate = true
light = false
side-by-side = true
line-numbers = true
syntax-theme = Dracula
[merge]
conflictstyle = diff3
[diff]
colorMoved = default
# 사용: 평소처럼 git diff 실행
git diff # 나란히 보기 + 구문 강조
git log -p # 커밋별 diff도 delta 적용
git show HEAD # 커밋 상세 보기
8. Taskfile - Makefile의 현대적 대체
# 설치
brew install go-task
# Taskfile.yml 작성
version: '3'
vars:
APP_NAME: my-service
VERSION:
sh: git describe --tags --always
tasks:
dev:
desc: 개발 서버 실행
cmds:
- npm run dev
sources:
- src/**/*.ts
build:
desc: 프로덕션 빌드
cmds:
- npm run build
- docker build -t {{.APP_NAME}}:{{.VERSION}} .
deps: [lint, test] # 사전 작업
lint:
desc: 코드 린트 실행
cmds:
- npx eslint src/ --fix
test:
desc: 테스트 실행
cmds:
- npm test -- --coverage
deploy:
desc: 배포
prompt: "프로덕션에 배포하시겠습니까?"
cmds:
- docker push {{.APP_NAME}}:{{.VERSION}}
- kubectl set image deployment/app app={{.APP_NAME}}:{{.VERSION}}
# 실행
task dev # 개발 서버
task build # 빌드 (lint, test 선행)
task deploy # 배포 (확인 프롬프트)
task --list # 사용 가능한 태스크 목록
9. lazygit - 터미널 Git UI
# 설치
brew install lazygit
# 실행
lazygit
# 주요 단축키:
# Space - 파일 스테이징/언스테이징
# c - 커밋
# P - 푸시
# p - 풀
# b - 브랜치 관리
# s - 스태시
# ? - 전체 단축키 보기
# Git alias로 등록
git config --global alias.ui '!lazygit'
10. atuin - 셸 히스토리 혁신
# 설치
brew install atuin
# 초기화 (.zshrc에 추가)
eval "$(atuin init zsh)"
# Ctrl+R로 대화형 검색 (기본 바인딩 대체)
# 기능:
# - 전체 명령어 히스토리를 SQLite에 저장
# - 실행 시간, 종료 코드, 디렉토리 정보 포함
# - 퍼지 검색 + 필터링
# - 여러 머신 간 히스토리 동기화 (선택)
# 통계 확인
atuin stats
# 히스토리 검색
atuin search "docker"
atuin search --exit 0 "deploy" # 성공한 명령어만
# 특정 디렉토리에서 실행한 명령어
atuin search --cwd ~/projects/my-app
한 번에 설치하기
# macOS (Homebrew)
brew install bat fzf eza zoxide ripgrep fd git-delta go-task lazygit atuin
# Ubuntu/Debian
sudo apt install bat fd-find ripgrep
cargo install eza zoxide git-delta
snap install lazygit
bash <(curl --proto '=https' --tlsv1.2 -sSf https://setup.atuin.sh)
# .zshrc 통합 설정
eval "$(zoxide init zsh)"
eval "$(atuin init zsh)"
eval "$(fzf --zsh)"
alias cat='bat --paging=never'
alias ls='eza --icons'
alias ll='eza -la --git --icons'
alias lt='eza --tree --level=2 --icons'
alias cd='z'
alias find='fd'
alias grep='rg'