Downloads & nützliche Skripte

Hier findest du kleine Bash-Skripte, die du herunterladen, anpassen und als Lernmaterial verwenden kannst. Alle Skripte stehen unter der MIT-Lizenz — du darfst sie frei verwenden und verändern.

Tipp: Um ein Skript auszuführen, speichere es in eine Datei, mache sie ausführbar mit chmod +x skript.sh und starte es mit ./skript.sh. Mehr dazu im Tutorial Shellscripts schreiben.

backup-home.sh — Home-Verzeichnis sichern

Erstellt ein inkrementelles Backup deines Home-Verzeichnisses auf eine externe Festplatte. Nutzt rsync mit sinnvollen Excludes und schreibt ein Log.

#!/bin/bash
# backup-home.sh — Home-Backup mit rsync
# Anpassen: ZIEL auf dein Backup-Medium setzen

set -euo pipefail

QUELLE="$HOME/"
ZIEL="/media/$USER/backup/home-backup/"
LOG="$HOME/backup-$(date +%Y%m%d).log"

echo "Starte Backup: $(date)" | tee "$LOG"
rsync -avh --delete   --exclude='.cache'   --exclude='.local/share/Trash'   --exclude='snap/*/common/.cache'   "$QUELLE" "$ZIEL" 2>&1 | tee -a "$LOG"
echo "Fertig: $(date)" | tee -a "$LOG"

Mehr zu rsync: Backups mit rsync

aufraeumen.sh — System aufräumen

Räumt apt-Cache, alte Kernel, Papierkorb und systemd-Logs auf. Fragt vor jedem Schritt nach Bestätigung.

#!/bin/bash
# aufraeumen.sh — Linux aufräumen mit Bestätigung

fragen() {
  read -p "$1 (j/n) " antwort
  [[ "$antwort" == "j" ]]
}

echo "=== Speicher vorher ==="
df -h /

if fragen "apt-Cache leeren?"; then
  sudo apt clean
  sudo apt autoremove -y
fi

if fragen "Papierkorb leeren?"; then
  rm -rf ~/.local/share/Trash/*
fi

if fragen "Journal auf 100 MB begrenzen?"; then
  sudo journalctl --vacuum-size=100M
fi

echo "=== Speicher nachher ==="
df -h /

Ausführliche Erklärung: Linux aufräumen

systembericht.sh — Schneller Systembericht

Gibt einen kompakten Überblick über dein System: Distribution, Kernel, CPU, RAM, Festplatte und Uptime.

#!/bin/bash
# systembericht.sh — Systeminformationen auf einen Blick

echo "=== Systembericht $(date +%Y-%m-%d) ==="
echo ""
echo "Distribution: $(lsb_release -ds 2>/dev/null || cat /etc/os-release | grep PRETTY_NAME | cut -d= -f2 | tr -d '"')"
echo "Kernel:       $(uname -r)"
echo "CPU:          $(grep -m1 'model name' /proc/cpuinfo | cut -d: -f2 | xargs)"
echo "RAM:          $(free -h | awk '/Mem:/ {print $2 " gesamt, " $3 " belegt, " $7 " verfügbar"}')"
echo "Festplatte:   $(df -h / | awk 'NR==2 {print $3 " belegt von " $2 " (" $5 ")"}')"
echo "Uptime:       $(uptime -p)"

bilder-komprimieren.sh — Fotos verkleinern

Verkleinert alle JPEG-Bilder im aktuellen Ordner auf maximal 1920 Pixel Breite und komprimiert sie auf 85% Qualität. Benötigt ImageMagick (sudo apt install imagemagick).

#!/bin/bash
# bilder-komprimieren.sh — JPEGs verkleinern
# Benötigt: imagemagick (sudo apt install imagemagick)

set -euo pipefail

MAXBREITE=1920
QUALITAET=85
ZAEHLER=0

for bild in *.jpg *.jpeg *.JPG *.JPEG; do
  [ -f "$bild" ] || continue
  echo "Verarbeite: $bild"
  convert "$bild" -resize "${MAXBREITE}x>" -quality $QUALITAET "$bild"
  ((ZAEHLER++))
done

echo "Fertig: $ZAEHLER Bilder komprimiert."

Mehr zu Befehlen wie for und set: Shellscripts schreiben