Bash – cheat sheet

Terminal, filer, piping og scripts · Linux, macOS og Windows (WSL/Git Bash)

Bash er standard-terminalen på Linux/macOS og bruges i WSL og Git Bash på Windows. Hvert eksempel står alene.

1. Navigér rundt

pwd                  # hvor er jeg?
ls                   # vis filer i mappen
ls -la               # vis alle + detaljer
cd projekt/          # gå ind i mappe
cd ..                # en mappe op
cd ~                 # hjemmemappen
mkdir ny-mappe       # opret mappe
touch fil.txt        # opret tom fil

Stier bruger / (ikke \ som Windows). ~ er din hjemmemappe. Tab udfylder filnavne automatisk – brug det konstant.

2. Filer: se, kopiér, flyt, slet

cat fil.txt          # vis hele filen
head -20 fil.txt     # første 20 linjer
tail -f log.txt      # følg filen live (Ctrl+C stop)

cp fil.txt backup/   # kopiér
mv gammel.txt ny.txt # omdøb/flyt
rm fil.txt           # slet (ingen papirkurv!)
rm -r mappe/         # slet mappe med indhold
Pas på: rm sletter permanent – der er ingen fortryd. Brug rm -i for at blive spurgt før hver sletning.

3. Søg i filer og indhold

find . -name "*.txt"     # find filer efter navn
grep "søgeord" fil.txt   # find linjer i fil
grep -r "TODO" src/      # søg i hele mappe
grep -i "fejl" log.txt   # ignorer store/små bogstaver

# Kombiner: find + grep
find . -name "*.py" | xargs grep "import"

4. Piping: kæd kommandoer sammen

# Output fra én kommando bliver input til næste
ls -la | grep ".txt"     # kun txt-filer
cat log.txt | sort | uniq  # sorter + fjern dubletter
history | grep "git"     # find gamle git-kommandoer

# Gem output i fil
ls > filer.txt           # overskriv
ls >> filer.txt          # tilføj nederst
ls 2> fejl.txt           # kun fejlbeskeder

| sender output videre. > gemmer (overskriver). >> tilføjer. 2> fanger fejl. Piping er Bash' superkraft.

5. Variable og miljø

navn="Ada"           # INGEN mellemrum omkring =
echo $navn           # "Ada"
echo "Hej $navn"     # "Hej Ada"
echo 'Hej $navn'     # "Hej $navn" (bogstaveligt)

# Miljøvariable
echo $HOME           # hjemmemappe
echo $PATH           # hvor programmer findes
export MIN_VAR="42"  # gør synlig for underprocesser

Dobbelte anførselstegn "..." udfører variable. Enkelte '...' er bogstavelige. Ingen mellemrum omkring = ved tildeling.

6. Scripts: .sh-filer

#!/bin/bash
# min-script.sh

echo "Start..."
mkdir -p output
cp *.txt output/
echo "Færdig!"
# Gør kørbart og kør:
chmod +x min-script.sh
./min-script.sh

# Eller direkte:
bash min-script.sh

#!/bin/bash (shebang) fortæller hvilket program der skal køre filen. chmod +x gør den kørbar. Kør med ./ foran.

7. Løkker og betingelser i scripts

# For-løkke
for fil in *.txt; do
  echo "Behandler $fil"
done

# If-betingelse
if [ -f "data.csv" ]; then
  echo "Filen findes"
elif [ -d "data" ]; then
  echo "Det er en mappe"
else
  echo "Intet fundet"
fi

# While-løkke
while IFS= read -r linje; do
  echo "$linje"
done < fil.txt

Betingelser: -f = fil findes, -d = mappe findes, -z = streng er tom. Bemærk mellemrum inde i [ ].

8. Nyttige genveje

Ctrl+C    # afbryd kørende kommando
Ctrl+L    # ryd skærmen (som clear)
Ctrl+A    # start af linjen
Ctrl+E    # slutning af linjen
Ctrl+R    # søg i historik
!!        # gentag sidste kommando
!git      # gentag sidste git-kommando
history   # se tidligere kommandoer

9. Pakker og værktøjer

# Ubuntu/Debian (WSL)
sudo apt update
sudo apt install git curl

# macOS (Homebrew)
brew install git

# Hent filer fra nettet
curl -O https://eksempel.dk/fil.zip
wget https://eksempel.dk/fil.zip

# Arkiver
unzip arkiv.zip
tar -xzf arkiv.tar.gz

10. Hurtig oversigt

pwd / ls / cdnavigér i mapper cat / lessvis fil-indhold cp / mv / rmkopiér / flyt / slet mkdir / rmdiropret / fjern mappe grep / findsøg i indhold / efter filnavn chmod +xgør fil kørbar man kommandovis hjælp til kommando echo $VARvis variabel sudo ...kør som administrator

11. Typiske faldgruber