DevToolBox무료
블로그

개발자를 위한 필수 Linux 명령줄 도구 2026

13분 읽기by DevToolBox

2026년 모든 개발자가 알아야 할 Linux 커맨드라인 도구

클래식 UNIX 도구(find, grep, cat, ls)는 여전히 작동하지만, Rust 기반의 새 세대 도구들은 훨씬 더 나은 성능을 제공합니다.

fd와 ripgrep: 강화된 파일 및 콘텐츠 검색

fd는 합리적인 기본값으로 find를 대체합니다. ripgrep은 grep보다 10-100배 빠릅니다.

# fd: modern find replacement (written in Rust)
# Faster, respects .gitignore, simpler syntax

# Install
brew install fd          # macOS
apt install fd-find      # Ubuntu/Debian (binary is 'fdfind')

# Find files by name (case-insensitive by default)
fd config                # finds files named 'config', 'Config.js', etc.
fd '\.tsx$'              # regex: all .tsx files
fd -e ts -e tsx          # by extension (no dot)
fd -t d src              # type: directory named 'src'
fd -t f -x wc -l        # find files, run 'wc -l' on each (parallel)

# ripgrep (rg): grep replacement -- blazing fast, respects .gitignore
# Install: brew install ripgrep / apt install ripgrep

# Basic search
rg 'useState'                       # search current dir recursively
rg 'TODO|FIXME' --glob '*.ts'       # glob filter
rg -l 'console\.log'               # list file names only
rg -n 'export default' src/         # show line numbers

# Context lines
rg -C 3 'throw new Error'           # 3 lines before and after
rg -A 5 'async function fetchUser'  # 5 lines after match

# Type filtering (rg knows language extensions)
rg --type ts 'interface'            # TypeScript files only
rg --type-add 'web:*.{html,css,js}' --type web 'font-face'

bat와 eza: 더 나은 cat과 ls

bat는 cat에 구문 강조를 추가합니다. eza는 git 상태 표시와 함께 ls를 대체합니다.

# bat: cat with syntax highlighting, line numbers, git diffs
# Install: brew install bat / apt install bat (binary may be 'batcat')

# Basic usage
bat README.md                       # with syntax highlighting
bat src/index.ts                    # TypeScript highlighted
bat --style=plain file.txt          # no decorations (pipe-safe)
bat --paging=never file.txt         # don't use pager

# Show git changes inline (like 'diff')
bat --diff src/app.ts               # highlight lines changed vs git

# As a colorized pager for man pages
export MANPAGER="sh -c 'col -bx | bat -l man -p'"

# eza: modern ls replacement (was exa, now maintained fork)
# Install: brew install eza / apt install eza

# Basic usage
eza                                 # color-coded by file type
eza -l                              # long listing (like ls -l)
eza -la                             # include hidden files
eza --tree                          # tree view
eza --tree --level=2                # tree, max 2 levels deep
eza -l --git                        # show git status per file
eza --sort=modified                 # sort by modification time
eza -lh --group                     # human sizes, group by owner

# Useful aliases
alias ls='eza --color=auto'
alias ll='eza -l --git'
alias la='eza -la --git'
alias lt='eza --tree --level=2'

delta와 zoxide: git diff와 스마트 탐색

delta는 git diff 출력을 개선합니다. zoxide는 자주 방문하는 디렉터리를 학습합니다.

# delta: syntax-highlighting pager for git diffs
# Install: brew install git-delta / cargo install git-delta

# Configure in ~/.gitconfig
[core]
    pager = delta

[interactive]
    diffFilter = delta --color-only

[delta]
    navigate = true      # n/N to jump between diff sections
    light = false        # set to true for light terminal
    side-by-side = true  # show old/new side by side
    line-numbers = true
    syntax-theme = Dracula

# Now all git diff/log/show output is highlighted
git diff HEAD~1
git log -p --follow -- src/utils.ts
git show a1b2c3d

# zoxide: smarter cd that learns your habits
# Install: brew install zoxide / apt install zoxide

# Add to ~/.zshrc or ~/.bashrc:
eval "$(zoxide init zsh)"    # for zsh
eval "$(zoxide init bash)"   # for bash

# Usage -- z learns directories you visit frequently
z project         # jump to most-used directory matching 'project'
z dev tool        # multiple terms: matches paths containing both
zi                # interactive mode: fuzzy search with fzf

# After a few days of normal use:
z dev             # /Users/you/Development/my-project
z dt              # /Users/you/devtoolbox
z log             # /var/log  or wherever you go most often

fzf와 jq: 퍼지 검색과 JSON 처리

fzf는 모든 명령에 대화형 퍼지 검색을 추가합니다. jq는 JSON 처리의 표준 도구입니다.

# fzf: command-line fuzzy finder -- connects everything together
# Install: brew install fzf / apt install fzf

# Interactive file picker
vim $(fzf)                          # open any file in vim
code $(fzf --preview 'bat {}')      # open in VS Code with preview

# Shell history search (Ctrl+R replacement)
export FZF_CTRL_R_OPTS="--sort --exact"

# Pipe into fzf for interactive selection
git branch | fzf | xargs git checkout    # interactive branch switcher
docker ps | fzf | awk '{print $1}' | xargs docker stop

# jq: JSON processor for the command line
# Install: brew install jq / apt install jq

# Basic extraction
curl -s https://api.github.com/repos/sharkdp/fd | jq '.stargazers_count'
cat package.json | jq '.dependencies | keys'
cat data.json | jq '.users[] | {name, email}'

# Filtering and transformation
cat users.json | jq '[.[] | select(.active == true)] | length'
cat logs.json  | jq '.[] | select(.level == "error") | .message'

# Build new structure
cat data.json | jq '{ total: length, names: [.[].name] }'

# Compact output (single line)
cat pretty.json | jq -c .           # minified JSON output

HTTPie와 xh: 개발자 친화적 HTTP 클라이언트

HTTPie와 xh는 자동 JSON 형식으로 HTTP 요청을 위한 직관적인 구문을 제공합니다.

# HTTPie / xh: human-friendly HTTP clients
# HTTPie: pip install httpie  |  brew install httpie
# xh (Rust, faster): brew install xh / cargo install xh

# GET request
http GET https://api.example.com/users
xh GET https://api.example.com/users         # same, xh syntax

# POST JSON (auto-detected from key=value syntax)
http POST https://api.example.com/users \
  name="Alice" \
  email="alice@example.com" \
  role=admin

# With headers and auth
http GET https://api.example.com/profile \
  Authorization:"Bearer $TOKEN" \
  Accept:application/json

# Form data
http --form POST https://example.com/upload file@/path/to/file.txt

# Download file
http --download https://example.com/file.zip

# Save session (cookies, headers) between requests
http --session=./session.json POST https://api.example.com/login \
  username=admin password=secret

http --session=./session.json GET https://api.example.com/dashboard

쉘 별칭과 생산성 함수

좋은 별칭과 쉘 함수는 반복적인 입력을 줄여줍니다.

# Productivity shell aliases and functions
# Add to ~/.zshrc or ~/.bashrc

# Navigation
alias ..='cd ..'
alias ...='cd ../..'

# Safety nets
alias rm='rm -i'            # confirm before delete
alias cp='cp -i'            # confirm before overwrite
alias mv='mv -i'

# One-line process management
alias psg='ps aux | grep -v grep | grep -i'
alias ports='ss -tlnp'      # listening ports (Linux)
alias myip='curl -s ifconfig.me'

# Git shortcuts
alias gs='git status -sb'
alias ga='git add -p'       # interactive staging
alias gl='git log --oneline --graph --decorate -20'

# Modern replacements (if installed)
command -v fd  > /dev/null && alias find='fd'
command -v rg  > /dev/null && alias grep='rg'
command -v bat > /dev/null && alias cat='bat --paging=never'
command -v eza > /dev/null && alias ls='eza'

# Useful functions
mkcd() { mkdir -p "$1" && cd "$1"; }          # mkdir + cd
extract() {                                    # universal archive extractor
  case "$1" in
    *.tar.gz)  tar xzf "$1"  ;;
    *.tar.bz2) tar xjf "$1"  ;;
    *.zip)     unzip "$1"    ;;
    *.gz)      gunzip "$1"   ;;
    *.7z)      7z x "$1"     ;;
    *) echo "Unknown format: $1" ;;
  esac
}

클래식 도구 vs 현대 도구 비교

ClassicModernLanguageKey Improvements
findfdRustRespects .gitignore, case-insensitive by default, regex support
grepripgrep (rg)Rust10-100x faster, parallel search, respects .gitignore
catbatRustSyntax highlighting, line numbers, git diff integration
lsezaRustColors, git status, icons, tree view, human sizes default
diff / git diffdeltaRustSyntax highlighting, side-by-side, line numbers, themes
cdzoxide (z)RustFrecency-based jump, interactive with fzf (zi)
Ctrl+R historyfzfGoFuzzy search, composable with any command, preview pane
python -m json.tooljqCFilter, transform, query — full DSL for JSON
curlhttpie / xhPython/RustHuman-readable output, auto JSON, session management

자주 묻는 질문

이 도구들이 macOS에서 작동하나요?

예, 모두 크로스플랫폼입니다. Homebrew 또는 apt/dnf로 설치할 수 있습니다.

grep을 rg로 별칭하는 것이 안전한가요?

대화형 사용에는 안전하지만, 스크립트에서는 주의가 필요합니다.

fzf와 zoxide는 어떻게 다른가요?

서로 다른 문제를 해결하며 보완적입니다.

스크립트에서 HTTPie와 curl 중 어느 것을 사용해야 하나요?

curl은 자동화에 더 이식성이 높고, HTTPie/xh는 대화형 개발에 더 좋습니다.

관련 도구

𝕏 Twitterin LinkedIn
도움이 되었나요?

최신 소식 받기

주간 개발 팁과 새 도구 알림을 받으세요.

스팸 없음. 언제든 구독 해지 가능.

Try These Related Tools

{ }JSON FormatterCron Expression Parser.*Regex Tester

Related Articles

개발자를 위한 필수 Linux 명령어 치트시트

개발자를 위한 종합 Linux 명령어 레퍼런스. 파일 관리, 텍스트 처리, 네트워킹, 권한, 프로세스 관리, 생산성 원라이너를 예제와 함께 제공.

Linux 명령어 치트시트: 필수 50개 명령어

카테고리별로 정리한 50개 필수 Linux 명령어: 파일 관리, 텍스트 처리, 네트워킹, 프로세스 관리, 시스템 관리. 복사 가능한 예제 포함.

Git 명령어 치트 시트: 개발자 필수 명령어 모음

완전한 Git 명령어 치트 시트: 설정, 브랜치, 병합, 리베이스, 스태시, 고급 워크플로우.