Contents
see List작성일 2026. 04. 05.
2026년 커맨드라인은 르네상스를 맞이했다. 기존 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'