DevToolBoxGRATIS
Blogg

Viktige Linux-kommandolinjeverktøy for utviklere 2026

13 min lesningby DevToolBox

Linux kommandolinjeverktøy enhver utvikler bør kjenne i 2026

De klassiske UNIX-verktøyene fungerer fortsatt, men en ny generasjon Rust-drevne verktøy tilbyr betydelig bedre ytelse.

fd og ripgrep: kraftig søk

fd erstatter find med fornuftige standardinnstillinger. ripgrep erstatter grep med 10-100x høyere hastighet.

# 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 og eza: bedre cat og ls

bat legger til syntaksmarkering i cat. eza erstatter ls med git-statusindikatorer.

# 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 og zoxide: git-diffs og smart navigering

delta transformerer git diff-utdata. zoxide lærer dine hyppige kataloger.

# 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 og jq: fuzzy-søk og JSON-behandling

fzf legger til interaktivt fuzzy-søk. jq er standardverktøyet for 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 og xh: utviklervennlige HTTP-klienter

HTTPie og xh tilbyr intuitiv syntaks for HTTP-forespørsler.

# 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

Shell-aliaser og produktivitetsfunksjoner

Gode aliaser og shell-funksjoner reduserer repetitiv skriving.

# 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
}

Sammenligning av klassiske vs moderne verktøy

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

Vanlige spørsmål

Fungerer disse verktøyene på macOS?

Ja, alle er plattformuavhengige. Installer via Homebrew eller apt/dnf.

Er det trygt å aliase grep til rg?

For interaktiv bruk ja, men vær forsiktig i skript.

Hvordan sammenlignes fzf og zoxide?

De løser ulike problemer og utfyller hverandre.

Bør jeg bruke HTTPie eller curl i skript?

curl er mer bærbart for automatisering. HTTPie/xh er bedre for interaktiv utvikling.

Relaterte verktøy

𝕏 Twitterin LinkedIn
Var dette nyttig?

Hold deg oppdatert

Få ukentlige dev-tips og nye verktøy.

Ingen spam. Avslutt når som helst.

Try These Related Tools

{ }JSON FormatterCron Expression Parser.*Regex Tester

Related Articles

Viktige Linux-kommandoer jukseark for utviklere

Komplett Linux-kommandoreferanse for utviklere. Filhaandtering, tekstbehandling, nettverk, rettigheter, prosesshaandtering og produktivitets-onelinere med eksempler.

Linux-kommandoer jukseark: 50 viktige kommandoer

Mestr 50 viktige Linux-kommandoer per kategori: filhaandtering, tekstbehandling, nettverk, prosesshaandtering og systemadministrasjon.

Git Commands Cheat Sheet: Essensielle kommandoer for alle utviklere

Komplett Git-kommandojukseark: oppsett, branching, merging, rebasing, stashing og avanserte arbeidsflyter.