Terminal tricks

Kilde: Denne side er en dansk, praktisk opsummering. Pointen er enkel: terminalen er ikke bare et sted, hvor man skriver kommandoer. Det er et arbejdsmiljø. Jo bedre du former det, jo mindre friktion får du i hverdagen.

1. Genbrug den sidste kommando i stedet for at skrive den igen

Hvis en kommando fejler, fordi du glemte sudo, skal du ikke trykke pil-op, flytte cursoren og rette manuelt. Brug:

sudo !!

!! udvider til hele den forrige kommando. Det er især nyttigt ved lange kommandoer med mange argumenter.

Et andet lille trick er !$, som betyder “sidste argument fra forrige kommando”:

mkdir my-project
cd !$

Her opretter du mappen og hopper direkte ind i den uden at skrive navnet to gange.

2. Brug Ctrl+R som søgemaskine i din historik

Pil-op er den langsomme måde at finde gamle kommandoer på. Ctrl+R laver reverse search i din shell-historik. Skriv en del af kommandoen, for eksempel docker, og terminalen finder seneste match.

(reverse-i-search)`docker': docker-compose up -d --build
  • Ctrl+R igen: find ældre matches
  • Enter: kør kommandoen
  • Esc: rediger kommandoen før den køres

Gør historikken større ( ~/.bashrc eller ~/.zshrc), ellers søger du kun i et for lille vindue:

HISTSIZE=10000
HISTFILESIZE=20000
HISTCONTROL=ignoredups:erasedups

3. Ret stavefejl med ^old^new

Hvis du lige har kørt en kommando med en tastefejl, kan du rette og køre den igen i ét hug( ^old^new substitution):

git chekcout main

^chekcout^checkout

Shellen erstatter chekcout med checkout i den forrige kommando og kører den straks. Det er småting, men småting i terminalen gentages mange gange om dagen.

4. Brug aliases til alt, du skriver igen og igen

Hvis du skriver den samme kommando flere gange om ugen, bør den have et alias. Læg dem i ~/.bashrc eller ~/.zshrc.

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

# Listing
alias ll='ls -alF'
alias lt='ls -ltr'

# Sikkerhedsnet
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Git
alias gs='git status'
alias ga='git add .'
alias gc='git commit -m'
alias gp='git push'
alias gl='git log --oneline --graph --decorate'
alias gco='git checkout'

# Docker
alias dps='docker ps'
alias dc='docker-compose'
alias dcu='docker-compose up -d'
alias dcd='docker-compose down'

# Node
alias ni='npm install'
alias nrd='npm run dev'
alias nrb='npm run build'

# Genindlæs shell-config
alias reload='source ~/.bashrc'

Den undervurderede er alias -- -='cd -'. Den fungerer som en browser-tilbageknap mellem to mapper.

5. Lær tastaturgenvejene, der gør lange kommandoer mindre irriterende

  • Ctrl+A: hop til starten af linjen
  • Ctrl+E: hop til slutningen af linjen
  • Ctrl+W: slet ét ord bagud
  • Ctrl+U: slet alt før cursoren
  • Ctrl+K: slet alt efter cursoren
  • Ctrl+L: ryd skærmen, samme som clear
  • Ctrl+C: stop den aktuelle kommando
  • Ctrl+Z: suspendér en proces, hent den tilbage med fg
  • Alt+F: hop ét ord frem
  • Alt+B: hop ét ord tilbage

Den praktiske kombination er ofte Ctrl+A og derefter Ctrl+K, hvis du vil slette hele kommandoen og starte forfra.

6. Brug tmux, så dit arbejde overlever SSH-tab

tmux er især vigtigt på remote servere. Uden tmux kan en afbrudt SSH-forbindelse slå din kørende proces ihjel. Med tmux fortsætter sessionen, og du kan koble dig på igen.

# Start en navngivet session
tmux new -s myproject

# Frakobl sessionen uden at stoppe arbejdet
Ctrl+B, derefter D

# Kobl på igen senere
tmux attach -t myproject

# Vis sessioner
tmux ls

Inde i tmux kan du splitte terminalen i paneler:

Ctrl+B, derefter %      # split lodret
Ctrl+B, derefter "      # split vandret
Ctrl+B, derefter pil    # skift panel

Typisk setup: server i ét panel, logs i et andet og editor eller shell i et tredje.

7. Kør lange processer i baggrunden

Hvis du starter en build, test-suite eller lokal server, kan du sende den i baggrunden med &:

npm run build &
  • jobs: se baggrundsjob
  • fg: hent jobbet tilbage i forgrunden
  • Ctrl+Z efterfulgt af bg: suspendér en allerede kørende proces og fortsæt den i baggrunden
Ctrl+Z
bg

8. Lav cd + ls til én funktion

Mange skriver cd mappe og derefter ls. Lav en lille shell-funktion i stedet:

function cl() {
  cd "$1" && ls -la
}

Nu kan du skrive:

cl my-project

Aliases er gode til simple forkortelser. Funktioner er bedre, når du skal bruge argumenter eller lidt logik.

9. Installer fzf og gør lister søgbare

fzf er en fuzzy finder til terminalen. Den kan søge i filer, kommandohistorik, git-branches, processer og alt andet, der kan sendes som en liste.

# macOS
brew install fzf

# Ubuntu / Debian
sudo apt install fzf

Eksempler:

# Find og åbn en fil
vim $(fzf)

# Skift git-branch interaktivt
git checkout $(git branch | fzf)

# Find og stop en proces
kill $(ps aux | fzf | awk '{print $2}')

Branch-eksemplet er det, mange får mest ud af i praksis. Du behøver ikke huske hele branchnavnet.

10. Kopiér output direkte til clipboard

Stop med at markere tekst med musen, når du skal kopiere terminal-output. Pipe det direkte til clipboard.

# macOS
cat some-file.txt | pbcopy

# Linux
cat some-file.txt | xclip -selection clipboard

Det er især nyttigt til SSH-nøgler, tokens, logudsnit og lange kommando-output.

# macOS: kopiér public SSH key
cat ~/.ssh/id_rsa.pub | pbcopy

På Linux kan xclip eller xsel bruges afhængigt af desktop-miljøet. På Wayland vil wl-copy ofte være det rigtige valg.

11. Brug thefuck til at rette forkerte kommandoer

thefuck er et værktøj, der analyserer den forrige kommando og foreslår en rettelse.

sudo apt install thefuck
fuck

Navnet er fjollet. Funktionen er reel. Det kan spare tid, når fejlen er en banal tastefejl, manglende flag eller en kendt kommando-variant.

Min korte anbefaling

Hvis du ikke bruger noget af det her i dag, så start ikke med alt. Start med tre ting:

  1. Ctrl+R og større shell-historik.
  2. Et lille sæt aliases til git, docker og navigation.
  3. fzf, hvis du ofte arbejder med mange filer, branches eller processer.

Hvis du arbejder på servere via SSH, så kommer tmux før alt andet. Det er ikke pynt. Det er forskellen på et robust arbejdsmiljø og en terminalsession, der dør, når forbindelsen hoster.

Se også Claude Code Cheat Sheet og Top 50+ Claude Skills & GitHub Repos under Coding-menuen.

Kilder