Keine eigenen Cookies · Kein Tracking auf dieser Seite

Linux Tutorials

Bash, systemd, Server-Setup und Konfiguration — Linux von der Praxis aus erklärt.

16 Tutorials in dieser Kategorie

Startseite Büro Windows PowerShell Linux Raspberry Pi Mac iPhone Android Tools Troubleshooting KI Netzwerk Robotik Sicherheit

Linux

Vom ersten Terminal-Befehl bis zum Server-Setup

Grundlagen
Einsteiger

Was ist Linux? Distributionen erklärt

Ubuntu, Mint, Fedora oder Arch? Welche Distribution passt zu dir — ein Überblick für Einsteiger.

Mehr lesen

Linux ist kein einzelnes Betriebssystem

Linux ist ein Kernel — der Kern eines Betriebssystems. Distributionen (kurz: Distros) packen diesen Kern mit Software, Desktop-Oberfläche und Paketmanager zusammen.

Die wichtigsten Distributionen

DistributionBasisZielgruppeDesktop
UbuntuDebianEinsteiger, ServerGNOME
Linux MintUbuntuWindows-UmsteigerCinnamon
FedoraRed HatEntwicklerGNOME
Arch LinuxEigenständigFortgeschritteneFrei wählbar
DebianEigenständigServer, StabilitätVerschiedene
openSUSESUSEUnternehmenKDE/GNOME

Desktop-Umgebungen

  • GNOME — Modern, minimalistisch, Touch-freundlich
  • KDE Plasma — Anpassbar, Windows-ähnlich, feature-reich
  • Cinnamon — Klassisch, intuitiv (Linux Mint Standard)
  • XFCE — Leichtgewichtig, ideal für ältere Hardware

Empfehlung für Einsteiger

Linux Mint mit Cinnamon-Desktop: Sieht aus wie Windows, funktioniert sofort, riesige Community.

Tipp: Teste Linux zuerst als Live-USB — ohne Installation direkt vom Stick booten und ausprobieren.

Terminal
Einsteiger

Terminal-Grundlagen

Die wichtigsten Befehle für den Einstieg: Dateien anzeigen, navigieren, kopieren und löschen.

Mehr lesen

Navigation & Dateien

BefehlFunktionBeispiel
pwdAktuelles Verzeichnis anzeigenpwd → /home/user
lsDateien auflistenls -la (mit Details + versteckte)
cdVerzeichnis wechselncd /var/log
mkdirVerzeichnis erstellenmkdir projekte
cpKopierencp datei.txt kopie.txt
mvVerschieben/Umbenennenmv alt.txt neu.txt
rmLöschenrm datei.txt
catDateiinhalt anzeigencat config.txt

Wichtige Abkürzungen

  • ~ — Home-Verzeichnis (cd ~)
  • .. — Ein Verzeichnis nach oben (cd ..)
  • . — Aktuelles Verzeichnis
  • Tab — Autovervollständigung (spart enorm Zeit!)
  • Strg + C — Laufenden Befehl abbrechen
  • Strg + R — In der Befehlshistorie suchen

Ordner mit Inhalt löschen

rm -r ordnername/

Vorsicht mit rm -rf! Löscht alles ohne Rückfrage. Nie als root auf / anwenden.

System
Einsteiger

Paketmanagement: apt, snap & flatpak

Software installieren, aktualisieren und entfernen — die drei Wege unter Linux.

Mehr lesen

APT (Debian/Ubuntu)

Der klassische Paketmanager für Debian-basierte Systeme:

AktionBefehl
Paketlisten aktualisierensudo apt update
Alle Pakete aktualisierensudo apt upgrade
Programm installierensudo apt install programmname
Programm entfernensudo apt remove programmname
Programm suchenapt search suchbegriff
Unnötige Pakete entfernensudo apt autoremove

Snap vs. Flatpak

  • Snap (Canonical): sudo snap install firefox — automatische Updates, sandboxed
  • Flatpak (Community): flatpak install flathub org.gimp.GIMP — distro-unabhängig

Immer zuerst sudo apt update vor sudo apt install — sonst werden veraltete Paketversionen installiert.

System
Einsteiger

Dateiberechtigungen: chmod & chown

Wer darf lesen, schreiben und ausführen? Das rwx-System einfach erklärt.

Mehr lesen

rwx verstehen

Jede Datei hat Berechtigungen für drei Gruppen: Besitzer, Gruppe, Andere.

BuchstabeBedeutungZahlenwert
rLesen (read)4
wSchreiben (write)2
xAusführen (execute)1

Beispiel: -rwxr-xr-- = Besitzer: rwx (7), Gruppe: r-x (5), Andere: r-- (4) → 754

Berechtigungen ändern

# Datei für alle ausführbar machen
chmod +x script.sh

# Numerisch: Besitzer alles, Gruppe lesen+ausführen, Andere lesen+ausführen
chmod 755 script.sh

# Rekursiv für Ordner
chmod -R 644 /var/www/html/

Besitzer ändern

# Besitzer ändern
sudo chown benutzer datei.txt

# Besitzer und Gruppe ändern
sudo chown benutzer:gruppe datei.txt

# Rekursiv
sudo chown -R www-data:www-data /var/www/

Typische Werte: 755 für Ordner und Skripte, 644 für normale Dateien, 600 für private Dateien wie SSH-Keys.

Editor
Einsteiger

Textdateien: nano & vim

Konfigurationsdateien direkt im Terminal bearbeiten — nano für Einsteiger, vim für Profis.

Mehr lesen

nano (empfohlen für Einsteiger)

nano /etc/hostname
ShortcutFunktion
Strg + OSpeichern
Strg + XBeenden
Strg + KZeile ausschneiden
Strg + UZeile einfügen
Strg + WSuchen
Strg + GHilfe anzeigen

vim (Kurzeinführung)

vim datei.txt
  • i — Einfügemodus (Text schreiben)
  • Esc — Zurück zum Normalmodus
  • :w — Speichern
  • :q — Beenden
  • :wq — Speichern und beenden
  • :q! — Beenden ohne Speichern

Tipp: vimtutor im Terminal startet ein interaktives vim-Tutorial (ca. 30 Minuten).

Netzwerk
Einsteiger

Netzwerk-Grundbefehle

IP-Adresse anzeigen, Verbindung testen, DNS abfragen — die Netzwerk-Basics im Terminal.

Mehr lesen
BefehlFunktionBeispiel
ip aIP-Adressen aller Interfacesip a
pingVerbindung testenping -c 4 google.de
curlURL abrufen / API testencurl -I https://example.com
ssOffene Ports anzeigenss -tulnp
digDNS-Abfragedig google.de
tracerouteRoute verfolgentraceroute google.de
hostname -IEigene IP-Adressehostname -I
nmcliNetzwerkverbindungen verwaltennmcli device status

Externe IP-Adresse herausfinden

curl ifconfig.me

ifconfig ist veraltet — verwende stattdessen ip a. Bei manchen Systemen muss traceroute erst installiert werden: sudo apt install traceroute.

Referenz
Fortgeschritten

Alle Linux-Tastenkürzel

Desktop, Terminal und Fensterverwaltung — die wichtigsten Shortcuts für Ubuntu, Mint & Co.

Mehr lesen

Desktop-Umgebung (GNOME / Ubuntu)

KürzelFunktion
Super (Win)Aktivitäten-Übersicht / Suche
Super + AAnwendungsmenü öffnen
Super + DDesktop anzeigen / alle Fenster minimieren
Super + LBildschirm sperren
Super + EDateimanager öffnen (Nautilus)
Super + Pfeil ↑Fenster maximieren
Super + Pfeil ↓Fenster wiederherstellen
Super + Pfeil ←/→Fenster links/rechts andocken
Super + HFenster minimieren
Super + Shift + Pfeil ←/→Fenster auf anderen Monitor verschieben
Alt + TabZwischen Programmen wechseln
Alt + F2Befehl ausführen (Run-Dialog)
Alt + F4Fenster schließen
DruckScreenshot (gesamter Bildschirm)
Shift + DruckScreenshot (Bereich auswählen)
Alt + DruckScreenshot (aktives Fenster)

Arbeitsbereiche (Workspaces)

KürzelFunktion
Super + Bild ↑/↓Workspace wechseln
Super + Shift + Bild ↑/↓Fenster auf anderen Workspace verschieben
Strg + Alt + Pfeil ↑/↓Workspace wechseln (alternativ)

Terminal

KürzelFunktion
Strg + Alt + TTerminal öffnen
Strg + Shift + CKopieren (im Terminal)
Strg + Shift + VEinfügen (im Terminal)
Strg + Shift + TNeuer Tab im Terminal
Strg + Shift + NNeues Terminal-Fenster
Strg + DTerminal/Shell beenden (logout)
Strg + CLaufenden Befehl abbrechen
Strg + ZProzess in Hintergrund stoppen
Strg + LBildschirm leeren (wie clear)
Strg + RBefehlshistorie durchsuchen
Strg + ACursor an Zeilenanfang
Strg + ECursor an Zeilenende
Strg + UZeile vor dem Cursor löschen
Strg + KZeile nach dem Cursor löschen
Strg + WWort vor dem Cursor löschen
TabAutovervollständigung (Befehle, Pfade)
Tab TabAlle Möglichkeiten anzeigen
↑ / ↓Durch Befehlshistorie blättern
!!Letzten Befehl wiederholen
sudo !!Letzten Befehl als root wiederholen

Allgemein (in allen Linux-Desktops)

KürzelFunktion
Strg + C / X / VKopieren / Ausschneiden / Einfügen (GUI-Apps)
Strg + ZRückgängig
Strg + SSpeichern
Strg + QAnwendung beenden
Strg + Alt + LBildschirm sperren (KDE/XFCE)
Strg + Alt + EntfAbmelden-Dialog (GNOME)

Hinweis: Tastenkürzel variieren je nach Desktop-Umgebung (GNOME, KDE Plasma, XFCE, Cinnamon). Diese Liste bezieht sich hauptsächlich auf GNOME (Ubuntu-Standard). Im Terminal gilt: Strg + C bricht Befehle ab — zum Kopieren Strg + Shift + C verwenden. Alle Shortcuts können unter Einstellungen → Tastaturkürzel angepasst werden.

Scripting
Fortgeschritten

Shell-Scripting: Grundlagen

Variablen, Schleifen, Bedingungen — wiederkehrende Aufgaben automatisieren mit Bash.

Mehr lesen

Erstes Skript

#!/bin/bash
# Mein erstes Skript
echo "Hallo, $(whoami)!"
echo "Heute ist $(date +%d.%m.%Y)"

Ausführbar machen: chmod +x meinskript.sh./meinskript.sh

Variablen

NAME="Linux"
echo "Hallo $NAME"
DATUM=$(date +%Y-%m-%d)    # Befehlsausgabe speichern

Bedingungen

if [ -f "/etc/hostname" ]; then
    echo "Datei existiert"
else
    echo "Datei nicht gefunden"
fi

Schleifen

# For-Schleife
for datei in *.log; do
    echo "Verarbeite: $datei"
done

# While-Schleife
while read zeile; do
    echo "$zeile"
done < datei.txt

Praxis: Backup-Skript

#!/bin/bash
QUELLE="/home/$USER/dokumente"
ZIEL="/backup/$(date +%Y-%m-%d)"
mkdir -p "$ZIEL"
cp -r "$QUELLE" "$ZIEL"
echo "Backup erstellt: $ZIEL"

Skripte immer mit #!/bin/bash beginnen (Shebang). Mit set -e bricht das Skript bei Fehlern ab.

System
Fortgeschritten

Systemd & Services

Dienste starten, stoppen, aktivieren und eigene Service-Dateien erstellen.

Mehr lesen

systemctl — Dienste verwalten

AktionBefehl
Status prüfensystemctl status nginx
Dienst startensudo systemctl start nginx
Dienst stoppensudo systemctl stop nginx
Dienst neustartensudo systemctl restart nginx
Beim Boot startensudo systemctl enable nginx
Autostart deaktivierensudo systemctl disable nginx
Alle Dienste auflistensystemctl list-units --type=service

journalctl — Logs lesen

# Logs eines Dienstes
journalctl -u nginx

# Logs live verfolgen
journalctl -u nginx -f

# Nur heutige Logs
journalctl --since today

Eigene Service-Datei erstellen

# /etc/systemd/system/mein-dienst.service
[Unit]
Description=Mein eigener Dienst
After=network.target

[Service]
ExecStart=/usr/local/bin/mein-programm
Restart=always
User=meinuser

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now mein-dienst

Nach Änderungen an Service-Dateien immer daemon-reload ausführen!

Netzwerk
Fortgeschritten

SSH Konfiguration & Hardening

SSH-Keys einrichten, ~/.ssh/config nutzen und den SSH-Server härten.

Mehr lesen

SSH-Key erstellen

ssh-keygen -t ed25519 -C "mein@email.de"

Erzeugt zwei Dateien: ~/.ssh/id_ed25519 (privat) und ~/.ssh/id_ed25519.pub (öffentlich).

Key auf Server kopieren

ssh-copy-id user@server

~/.ssh/config nutzen

Host meinserver
    HostName 192.168.1.100
    User admin
    Port 2222
    IdentityFile ~/.ssh/id_ed25519

Danach reicht: ssh meinserver

SSH-Server härten (/etc/ssh/sshd_config)

# Passwort-Login deaktivieren (nur Keys)
PasswordAuthentication no

# Root-Login verbieten
PermitRootLogin no

# Port ändern (optional)
Port 2222

# Nur bestimmte User erlauben
AllowUsers admin
sudo systemctl restart sshd

Wichtig: Vor dem Deaktivieren von Passwort-Login sicherstellen, dass der SSH-Key funktioniert! Sonst sperrst du dich aus.

Automatisierung
Fortgeschritten

Cron Jobs & Automatisierung

Aufgaben zeitgesteuert ausführen — Backups, Bereinigungen, Reports automatisch.

Mehr lesen

Crontab bearbeiten

crontab -e    # Eigene Cron-Jobs bearbeiten
crontab -l    # Eigene Cron-Jobs anzeigen

Crontab-Syntax

# Min  Std  Tag  Mon  Wtag  Befehl
  0    6    *    *    *     /home/user/backup.sh
  */5  *    *    *    *     /usr/bin/check-health.sh
  0    0    1    *    *     /usr/local/bin/monatsreport.sh
AusdruckBedeutung
* * * * *Jede Minute
0 * * * *Jede volle Stunde
0 6 * * *Täglich um 6:00 Uhr
0 6 * * 1Jeden Montag um 6:00 Uhr
*/15 * * * *Alle 15 Minuten
0 0 1 * *Am 1. jeden Monats

Häufige Fallstricke

  • Pfade: In Cron immer absolute Pfade verwenden!
  • Umgebungsvariablen: Cron hat ein minimales Environment — PATH explizit setzen
  • Ausgabe: Ohne Umleitung geht die Ausgabe als Mail an den User
# Ausgabe in Logdatei umleiten
0 6 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1

Tipp: crontab.guru hilft beim Erstellen von Cron-Ausdrücken.

Terminal
Fortgeschritten

Fensterposition & Größe festlegen

Terminal-Fenster mit exakter Position und Größe öffnen.

Mehr lesen

Klassisch: --geometry (X11 / ältere Systeme)

gnome-terminal --geometry=60x20+1090+10
  • 60x20 — Breite x Höhe in Zeichen
  • +1090+10 — X-Position + Y-Position in Pixeln

Hinweis: --geometry funktioniert nur unter X11. Unter Wayland (Standard bei neueren Distros) wird dieser Parameter ignoriert.

Modern: wmctrl (funktioniert überall)

# wmctrl installieren
sudo apt install wmctrl

# Fenster verschieben und skalieren: x, y, breite, höhe
wmctrl -r :ACTIVE: -e 0,1090,10,800,600

Alternative: xdotool

sudo apt install xdotool

# Aktives Fenster verschieben
xdotool getactivewindow windowmove 1090 10
xdotool getactivewindow windowsize 800 600
Container
Profi

Docker Grundlagen

Container verstehen, Images verwalten und mit Docker Compose mehrere Services orchestrieren.

Mehr lesen

Docker installieren

sudo apt update
sudo apt install docker.io docker-compose -y
sudo usermod -aG docker $USER
# Abmelden und neu einloggen!

Wichtige Befehle

BefehlFunktion
docker run -d nginxContainer im Hintergrund starten
docker psLaufende Container anzeigen
docker ps -aAlle Container (auch gestoppte)
docker imagesHeruntergeladene Images auflisten
docker stop CONTAINERContainer stoppen
docker rm CONTAINERContainer löschen
docker logs CONTAINERContainer-Logs anzeigen
docker exec -it CONTAINER bashShell im Container öffnen

Docker Compose Beispiel

# docker-compose.yml
version: "3"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: geheim
    volumes:
      - db-data:/var/lib/postgresql/data

volumes:
  db-data:
docker-compose up -d      # Starten
docker-compose down       # Stoppen und aufräumen
docker-compose logs -f    # Logs verfolgen

Docker-Daten wachsen schnell! Regelmäßig aufräumen: docker system prune -a entfernt ungenutzte Images und Container.

System
Profi

Performance & Monitoring

Systemüberwachung mit htop, iotop, vmstat — Engpässe erkennen und beheben.

Mehr lesen

Wichtige Monitoring-Tools

ToolZweckInstallation
htopInteraktiver Prozess-Monitorsudo apt install htop
iotopFestplatten-I/O pro Prozesssudo apt install iotop
vmstatSpeicher, CPU, I/O ÜbersichtVorinstalliert
free -hRAM-AuslastungVorinstalliert
df -hFestplattenplatzVorinstalliert
du -sh *Ordnergrößen anzeigenVorinstalliert

Load Average verstehen

uptime
# 14:30  up 5 days, load average: 1.20, 0.85, 0.65

Drei Werte: Last der letzten 1, 5 und 15 Minuten. Wert ≤ Anzahl CPU-Kerne = System nicht überlastet.

# Anzahl CPU-Kerne anzeigen
nproc

Live-Überwachung

# vmstat alle 2 Sekunden
vmstat 2

# Top 10 Speicherfresser
ps aux --sort=-%mem | head -11

Tipp: htop ist der beste Freund jedes Linux-Admins. Mit F6 sortieren, F9 Prozess beenden, F5 Baumansicht.

Sicherheit
Profi

Firewall: ufw & iptables

Ports freigeben, Regeln erstellen und den Server vor unerwünschtem Traffic schützen.

Mehr lesen

ufw — Uncomplicated Firewall

Die einfache Firewall für Ubuntu/Debian:

AktionBefehl
Status anzeigensudo ufw status verbose
Firewall aktivierensudo ufw enable
SSH erlaubensudo ufw allow ssh
Port 80 öffnensudo ufw allow 80/tcp
Port-Range öffnensudo ufw allow 3000:3100/tcp
IP erlaubensudo ufw allow from 192.168.1.0/24
Regel löschensudo ufw delete allow 80/tcp
Alles blockierensudo ufw default deny incoming

iptables — Fortgeschritten

# Alle Regeln anzeigen
sudo iptables -L -n -v

# Port 443 (HTTPS) erlauben
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Bestimmte IP blockieren
sudo iptables -A INPUT -s 10.0.0.50 -j DROP

# Regeln dauerhaft speichern
sudo apt install iptables-persistent -y
sudo netfilter-persistent save

Wichtig: Immer zuerst SSH erlauben bevor du die Firewall aktivierst! Sonst sperrst du dich bei Remote-Servern aus.

System
Profi

Disk Management: lsblk, mount & fstab

Festplatten anzeigen, formatieren, einhängen und dauerhaft in fstab konfigurieren.

Mehr lesen

Festplatten & Partitionen anzeigen

lsblk           # Blockgeräte als Baum
lsblk -f        # Mit Dateisystem und UUID
fdisk -l        # Detaillierte Partition-Infos
blkid           # UUIDs aller Partitionen

Partition formatieren

⚠ ACHTUNG: Formatieren löscht alle Daten auf der Partition unwiderruflich! Vorher mit lsblk -f sicherstellen, dass du die richtige Partition gewählt hast. Nutzung auf eigene Gefahr.

# Als ext4 formatieren
sudo mkfs.ext4 /dev/sdb1

# Als NTFS (für Windows-Kompatibilität)
sudo mkfs.ntfs /dev/sdb1

Manuell mounten

sudo mkdir -p /mnt/daten
sudo mount /dev/sdb1 /mnt/daten

# Aushängen
sudo umount /mnt/daten

Dauerhaft in /etc/fstab

# UUID herausfinden
blkid /dev/sdb1

# Zeile in /etc/fstab hinzufügen:
UUID=abc12345-... /mnt/daten ext4 defaults 0 2
# fstab testen (ohne Neustart)
sudo mount -a

Immer UUID statt Gerätenamen (sda, sdb) in fstab verwenden — Gerätenamen können sich nach einem Neustart ändern!