Bash er standard-terminalen på Linux/macOS og bruges i WSL og Git Bash på Windows. Hvert eksempel står alene.
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.
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
rm sletter permanent – der er ingen fortryd. Brug rm -i for at blive spurgt før hver sletning.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"
# 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.
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.
#!/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.
# 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 [ ].
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
# 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
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
rm sletter permanent – ingen papirkurv. Brug rm -i./, ikke \. cd C:\Users virker ikke i Bash.cd "Min Mappe".navn = "Ada" med mellemrum er en fejl; skriv navn="Ada".sudo spørger om adgangskode – den vises ikke mens du taster (det er normalt).