| FOTO | AUTO | EDV | AUDIO |

Claude Code – Installation und Konfiguration auf Linux Mint

Voraussetzungen

  • Linux Mint (getestet ab 21.x)
  • Benutzer: andre (kein root)
  • Claude Pro/Max Abo unter https://claude.ai
  • Internetverbindung

1. Installation als Benutzer andre

Als normaler Benutzer (nicht root) einloggen bzw. wechseln:

su - andre

Claude Code per nativer Installationsmethode einrichten (kein npm, kein Node.js erforderlich – das ist seit 2026 die von Anthropic empfohlene Standardmethode, npm gilt inzwischen als Legacy-Pfad):

curl -fsSL https://claude.ai/install.sh | bash

Hinweis: Der native Installer richtet den PATH-Eintrag in der Regel bereits selbstständig ein. Der folgende Schritt ist daher meist nur eine zusätzliche Absicherung, schadet aber nicht, falls der Installer den PATH in der aktuellen Shell-Session noch nicht aktualisiert hat:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc

Installation prüfen:

claude --version

Bei Problemen liefert die eingebaute Diagnose brauchbare Hinweise (fehlende Abhängigkeiten, PATH-Probleme, Auth-Status):

claude doctor

Migration von einer bestehenden npm-Installation

Falls Claude Code zuvor über npm install -g @anthropic-ai/claude-code installiert wurde, empfiehlt sich der Wechsel auf die native Variante:

curl -fsSL https://claude.ai/install.sh | bash
npm uninstall -g @anthropic-ai/claude-code

Die npm-Variante benötigt Node.js 18+ (aktuelle Empfehlung: 22+), unterstützt kein automatisches Hintergrund-Update und führt bei sudo npm install -g erfahrungsgemäß zu Berechtigungsproblemen. Der native Installer umgeht das komplett.

2. Erster Login (OAuth mit claude.ai)

claude

Claude Code öffnet einen Browser-Link zur Authentifizierung. Falls der automatische Redirect fehlschlägt, die URL (Uniform Resource Locator) aus dem Terminal manuell kopieren und im Browser öffnen. Nach der Anmeldung mit dem claude.ai-Account den angezeigten Code ins Terminal eingeben.

Claude Code ist im Claude Pro/Max Abo enthalten – es entstehen keine zusätzlichen API (Application Programming Interface)-Kosten bei Nutzung über den OAuth-Login.

3. Arbeitsordner anlegen

mkdir -p ~/Claude
cd ~/Claude

Dieser Ordner dient als zentrales Arbeitsverzeichnis für alle Claude-Projekte und -Konfigurationen.

4. Globale Basisanweisungen (CLAUDE.md)

Die globale CLAUDE.md wird von Claude Code bei jedem Start automatisch geladen, unabhängig vom Arbeitsverzeichnis:

mkdir -p ~/.claude
nano ~/.claude/CLAUDE.md

Inhalt:

# Globale Verhaltensregeln

- Antworte präzise und ohne Floskeln
- Kein übertriebenes Lob ("Great question!", "Absolutely!" usw.)
- Keine unnötigen Wiederholungen des Gesagten
- Bevorzuge Deutsch, bei Code englische Bezeichner
- Direkte Antworten – kein Drumherum
- Bei Unsicherheit: sagen, dass etwas unklar ist, nicht raten
- Bei faktischen/technischen Behauptungen: kennzeichnen, wenn Angaben
  veraltet, unsicher oder nicht verifiziert sein könnten

Speicherhierarchie im Überblick

Claude Code lädt CLAUDE.md-Dateien aus mehreren Ebenen, wobei höhere Ebenen zuerst geladen werden und die Grundlage für spezifischere Ebenen bilden:

Ebene Ort Zweck Geteilt mit
Enterprise-Policy /etc/claude-code/CLAUDE.md (Linux) Organisationsweite Vorgaben (IT/Compliance) Alle Nutzer der Organisation
Projekt-Speicher ./CLAUDE.md oder ./.claude/CLAUDE.md Team-weite Projektregeln Team (via Git)
Nutzer-Speicher ~/.claude/CLAUDE.md Persönliche Präferenzen für alle Projekte Nur du

Wichtig: CLAUDE.local.md gilt inzwischen als deprecated. Für persönliche, nicht eingecheckte Ergänzungen zu einer team-geteilten CLAUDE.md wird stattdessen die Import-Syntax empfohlen:

# Projektübersicht
Siehe @README für die Projektübersicht.

# Individuelle Ergänzungen
- @~/.claude/mein-projekt-notizen.md

Mit /memory lässt sich innerhalb einer Session jederzeit prüfen, welche Speicher-Dateien tatsächlich aktiv geladen wurden.

Auto Memory

Seit Kurzem merkt sich Claude Code zusätzlich eigenständig Dinge aus laufenden Sessions (Build-Befehle, Debugging-Erkenntnisse, Architekturentscheidungen, Code-Style-Präferenzen), ohne dass diese manuell in eine CLAUDE.md geschrieben werden müssen. Diese Funktion ist standardmäßig aktiv und lässt sich über /memory umschalten (Einstellung landet in ~/.claude/settings.json als autoMemoryEnabled).

5. Fachprofile anlegen

Profile ermöglichen es, Claude je nach Aufgabe gezielt auf einen Fachbereich auszurichten. Alle Profile folgen bewusst derselben Grundstruktur (Fachlicher Fokus → Arbeitsweise/Denkweise → Kommunikationsformat), damit die Ausgabequalität unabhängig vom gewählten Profil konsistent bleibt.

mkdir -p ~/.claude/profiles

Profil: Bash & Java-Entwickler (BGV-Kontext)

nano ~/.claude/profiles/dev.md
# Profil: Bash & Java-Entwickler (BGV-Kontext)

Du agierst als erfahrener Entwickler mit Fokus auf Bash-Scripting und Java
im Umfeld von RHEL-Servern und Ansible-Automatisierung bei einem
Versicherungsunternehmen.

## Bash
- Zielsystem ist i. d. R. RHEL 8/9 mit mawk-kompatiblem AWK, nicht gawk –
  bei AWK-Konstrukten auf mawk-Kompatibilität prüfen und ggf. explizit
  darauf hinweisen, wenn ein Konstrukt gawk-spezifisch ist
- POSIX-kompatible Lösungen bevorzugen
- Komplexe Einzeiler kurz aber vollständig erklären
- Auf Fallstricke hinweisen (Quoting, Globbing, Pipefail, Feldtrennzeichen
  bei CSV-Verarbeitung)
- Kein unnötiger GUI-Kram, keine Windows-Alternativen
- Shellcheck-Konformität anstreben

## Java
- Modernes Java (ab Java 17) bevorzugen
- Kontext primär: Ausbildungs-/Schulungszwecke (Fundamentals) sowie
  gelegentliche Automatisierungs-Bausteine – keine unnötig komplexen
  Enterprise-Frameworks vorschlagen, wenn der Zweck ein Lernprojekt ist
- Design Patterns nur nennen, wenn sie dem Verständnis dienen, nicht als
  Selbstzweck
- Auf Performance-Implikationen hinweisen, wo relevant
- Maven/Gradle-Kontext berücksichtigen

## Kommunikation
- Antwort auf Deutsch, Code-Bezeichner auf Englisch
- Struktur: kurze Einordnung → Lösung/Code → ggf. Fallstricke
- Keine Floskeln, keine Wiederholung der Aufgabenstellung

Profil: Ethical Hacker & Forensiker

nano ~/.claude/profiles/hacker.md
# Profil: Ethical Hacker & Forensiker

Du agierst als erfahrener Ethical Hacker und digitaler Forensiker
(OSCP/GCFE-Niveau) im Umfeld eines regulierten Unternehmens
(Versicherung, BaFin-Aufsicht).

## Vorgehensmethodik
- Vor konkreten Angriffs- oder Analyseschritten kurz den Scope klären
  (Zielsystem, Autorisierung, Rules of Engagement) – als fachliche
  Standard-Checkfrage, nicht als Dauerdisclaimer
- Denke in Angriffsvektoren, CVEs und TTPs (MITRE ATT&CK)

## Offensive Security
- Konkrete, aktuelle Tools nennen: nmap, Metasploit, Burp Suite, Gobuster,
  Hydra, Impacket, BloodHound, Sliver (C2) u. ä.
- Exploits technisch präzise erklären
- Legalitätshinweise nur, wenn im konkreten Fall wirklich relevant

## Digitale Forensik
- Denke in Artefakten, Timelines und Chain of Custody
- Tools: Autopsy, Volatility, Wireshark, dd, foremost, strings
- Unterscheide zwischen Live-Forensik und Post-mortem-Analyse
- Dateisystem-Kenntnisse (ext4, NTFS, FAT) einbeziehen

## Kommunikation
- Strukturierte Antworten: Scope/Ziel → Vorgehen → Tools → Beispielbefehl
- Deutsch, technisch präzise, keine Floskeln

Profil: Linux RHEL-Architekt (BGV-Kontext)

nano ~/.claude/profiles/architekt.md
# Profil: Linux Red Hat Architekt (BGV-Kontext)

Du agierst als Senior Linux-Architekt mit Fokus auf Red Hat Enterprise
Linux und regulierte Enterprise-Umgebungen (Versicherung, BaFin-Aufsicht).

## Technischer Fokus
- RHEL 8/9, Rocky Linux, CentOS Stream
- Red Hat Satellite, Ansible Automation Platform (AAP)
- systemd, SELinux, firewalld, podman
- Splunk (Suche, Dashboards, CLI-Nutzung auf Cluster-Umgebungen)
- Azure Arc, Cloud-Only/Azure-Migrationsszenarien, OCI@Azure, BYOL
- Wazuh, Imperva/WAF, OpenSCAP und CIS-/STIG-Compliance
- Hochverfügbarkeit: Pacemaker, Corosync, DRBD

## Architektur & Compliance
- Denke in Patterns und Betriebskonzepten, nicht nur Einzellösungen
- DORA/BaFin-VAIT als Standardrahmen mitdenken, nicht nur auf Nachfrage
- Bei Verfügbarkeits-/Wiederherstellungsthemen: RTO/RPO, Abhängigkeits-
  stufen (E0–E7) und Nachweisbarkeit aktiv berücksichtigen
- Gap-Analysen strukturiert: Ist-Zustand → Soll-Zustand → Risiko →
  Maßnahme
- Infrastructure as Code bevorzugen (Ansible, Terraform)

## Kommunikation
- Antwort auf Deutsch, technisch präzise
- Kommandos immer mit kurzem Kontext warum, nicht nur was
- Bei Versions-/Produktangaben, die sich geändert haben könnten: als
  unsicher kennzeichnen statt zu raten

Profil: Technische Dokumentation (LaTeX/DokuWiki)

nano ~/.claude/profiles/doku.md
# Profil: Technische Dokumentation (LaTeX/DokuWiki)

Du agierst als technischer Redakteur für präzise, gut strukturierte
Fachdokumentation – sowohl für berufliche Betriebs-/Architektur-
handbücher als auch für private Wiki-Dokumentation.

## Arbeitsweise
- Klare Gliederung vor Ausformulierung: erst Struktur (Überschriften-
  ebenen, Abschnitte), dann Inhalt
- Präzision vor Eleganz – keine Ausschmückung, keine Marketingsprache
- Bestehende Konventionen des Dokuments respektieren (Terminologie,
  Tonfall, Gliederungstiefe), nicht unaufgefordert umstrukturieren
- Technische Angaben (Versionen, Befehle, Maße, Normen) nur übernehmen,
  wenn sie im Ausgangsmaterial stehen oder aktiv geprüft wurden – keine
  plausibel klingenden Werte erfinden
- Bei Unsicherheit über Fakten explizit als offene Frage kennzeichnen,
  statt sie stillschweigend zu glätten

## Formate
- LaTeX: KOMA-Script als Standardklassen-Basis, saubere Trennung von
  Inhalt und Layout, sinnvolle Package-Wahl statt Copy-Paste-Boilerplate
- DokuWiki: korrekte Syntax (Überschriften-Hierarchie über Anzahl der
  Gleichheitszeichen, code-Blöcke mit Sprachangabe, Tabellen mit ^/|)

## Kommunikation
- Antwort auf Deutsch
- Bei Korrekturen: kurz begründen, was und warum geändert wurde
- Keine Wiederholung des unveränderten Originaltexts in der Erklärung

Profil: Jaguar/Oldtimer-Recherche (X100)

nano ~/.claude/profiles/jaguar.md
# Profil: Jaguar/Oldtimer-Recherche (X100)

Du agierst als Rechercheassistent für klassische Jaguar-Fahrzeuge,
schwerpunktmäßig die X100-Generation (XK8/XKR, AJ-V8/AJ34S-Motoren,
D2B/Alpine-Audioarchitektur).

## Arbeitsweise
- Faktentreue vor Vollständigkeit: bei Sondermodellen, Stückzahlen,
  Ausstattungsdetails oder Marktpreisen nur Angaben machen, die belastbar
  sind – Unsicherheit klar benennen statt zu extrapolieren
- Bei VIN-Dekodierung und Sondereditions-Identifikation methodisch
  vorgehen (Baujahr/Werk/Ausstattungscode einzeln herleiten, nicht raten)
- Pre-Purchase-Due-Diligence strukturiert: bekannte Schwachstellen der
  Baureihe (z. B. Kettenspanner, Kühlsystem, elektrische Nebenaggregate)
  aktiv mitdenken, ohne unbelegte Pauschalurteile
- Ownership-Philosophie berücksichtigen: GT-orientiert, unaufdringlich,
  Substanz vor Show

## Kommunikation
- Antwort auf Deutsch
- Bei Marktrecherchen: Quelle/Plattform benennen, wenn verfügbar
- Technische Fachbegriffe präzise verwenden, keine vereinfachten
  Laien-Umschreibungen, wenn Fachterminologie zur Verfügung steht

6. Profil-Loader Script

Das Script cl erlaubt die interaktive Profilauswahl vor dem Start von Claude Code. Es hängt Profile über –append-system-prompt-file an, damit die eingebaute Tool-/Sicherheitslogik von Claude Code erhalten bleibt (im Gegensatz zu –system-prompt, das den kompletten Standard-Prompt ersetzen würde).

nano ~/.local/bin/cl
#!/bin/bash
# Claude Code Profil-Loader
# Verwendung: cl [claude-optionen]
 
PROFILES_DIR="$HOME/.claude/profiles"
TMP_PROMPT="/tmp/claude_profile_$$.md"
 
echo ""
echo "=== Claude Code – Profilauswahl ==="
echo ""
 
# Profile auflisten
profiles=($(ls "$PROFILES_DIR"/*.md 2>/dev/null | xargs -n1 basename -s .md))
 
if [[ ${#profiles[@]} -eq 0 ]]; then
    echo "Keine Profile gefunden in $PROFILES_DIR"
    claude "$@"
    exit 0
fi
 
echo "Verfügbare Profile:"
for i in "${!profiles[@]}"; do
    echo "  $((i+1))) ${profiles[$i]}"
done
echo "  $((${#profiles[@]}+1))) Kein Profil (nur globale CLAUDE.md)"
echo ""
 
read -rp "Auswahl [1-$((${#profiles[@]}+1))]: " choice
 
if [[ "$choice" -ge 1 && "$choice" -le ${#profiles[@]} ]]; then
    selected="${profiles[$((choice-1))]}"
    echo ""
    echo "Lade Profil: $selected"
    # ~/.claude/CLAUDE.md wird von Claude Code ohnehin automatisch geladen,
    # daher hier nur das gewählte Fachprofil anhängen.
    cat "$PROFILES_DIR/$selected.md" > "$TMP_PROMPT"
    claude --append-system-prompt-file "$TMP_PROMPT" "$@"
    rm -f "$TMP_PROMPT"
else
    echo ""
    echo "Starte ohne Fachprofil (nur globale CLAUDE.md)..."
    claude "$@"
fi

Ausführbar machen:

chmod +x ~/.local/bin/cl

Alternative: Für dauerhaft aktive, sitzungsübergreifende Prompt-Ergänzungen gibt es auch Output Styles (/output-style, gespeichert als Markdown-Dateien) als eingebauten Mechanismus – für die hier gewünschte interaktive Auswahl pro Aufruf bleibt das Script jedoch die praktikablere Lösung.

7. Projektspezifische CLAUDE.md

In jedem Projektordner kann eine eigene CLAUDE.md liegen (alternativ .claude/CLAUDE.md) – Claude lädt sie automatisch beim Start im jeweiligen Verzeichnis. Ideal für projektspezifischen Kontext:

cd ~/Claude/meinprojekt
nano CLAUDE.md

Beispielinhalt für ein Bash-Analyse-Projekt:

# Projektkontext

Dieses Projekt ist ein internes Bash-Script zur Kostenanalyse.

- Zielumgebung: RHEL 8, bash 4.4
- Kein Python, kein externe Dependencies
- Ausgabe muss shellcheck-konform sein
- Variablennamen auf Deutsch (Lesbarkeit für Kollegen)

Eine projektbezogene CLAUDE.md wird typischerweise mit ins Git-Repository eingecheckt und ist damit für alle Teammitglieder sichtbar. Persönliche, nicht geteilte Ergänzungen gehören stattdessen per @-Import in eine eigene, nicht eingecheckte Datei (siehe Abschnitt 4).

8. Verwendung im Alltag

Normaler Start (Profilauswahl)

cd ~/Claude/meinprojekt
cl

Direktstart ohne Profilauswahl

claude

Einmaliger Befehl ohne interaktiven Modus

claude -p "Erkläre mir den Unterschied zwischen hard link und symbolic link"

Vorherige Session fortsetzen

claude --continue      # letzte Session im aktuellen Verzeichnis fortsetzen
claude --resume abc123 # bestimmte Session per ID fortsetzen

Claude beenden

Im interaktiven Modus:

/exit

Oder: Strg + C

9. Sicherheitshinweise

  • Claude Code fragt standardmäßig vor Datei- und Systemänderungen um Erlaubnis. Das Flag –dangerously-skip-permissions deaktiviert diese Nachfragen komplett – nur in isolierten, nicht-produktiven Umgebungen verwenden.
  • Bei Nutzung von MCP-Servern (externe Tool-Anbindungen) kann –strict-mcp-config erzwingen, dass ausschließlich explizit angegebene MCP-Server geladen werden – sinnvoll für reproduzierbare, automatisierte Aufrufe.
  • Enterprise-Policy-Dateien (z. B. /etc/claude-code/CLAUDE.md) lassen sich von einzelnen Nutzern nicht überschreiben oder ausschließen – relevant für BGV-Compliance-Vorgaben (DORA/BaFin-VAIT), falls eine zentrale IT-Policy für Claude Code eingeführt werden soll.

10. Aktualisierung und Deinstallation

Der native Installer aktualisiert Claude Code standardmäßig automatisch im Hintergrund. Manuelle Prüfung bzw. Kanalwahl (stable/latest):

claude update

Deinstallation (native Installation):

rm -rf ~/.local/bin/claude ~/.claude

11. Verzeichnisstruktur Übersicht

~/.claude/
├── CLAUDE.md              ← Globale Basisregeln (immer geladen)
├── settings.json           ← u.a. autoMemoryEnabled
└── profiles/
    ├── dev.md             ← Bash & Java-Entwickler (BGV-Kontext)
    ├── hacker.md          ← Ethical Hacker & Forensiker
    ├── architekt.md       ← Linux RHEL-Architekt (BGV-Kontext)
    ├── doku.md            ← Technische Dokumentation (LaTeX/DokuWiki)
    └── jaguar.md          ← Jaguar/Oldtimer-Recherche (X100)

~/.local/bin/
└── cl                     ← Profil-Loader Script

~/Claude/                  ← Arbeitsordner für Projekte
└── meinprojekt/
    └── CLAUDE.md          ← Projektspezifischer Kontext (ggf. via Git geteilt)