| FOTO | AUTO | EDV | AUDIO |

Dies ist eine alte Version des Dokuments!


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

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.

mkdir -p ~/.claude/profiles

Profil: Bash & Java-Entwickler

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

Du agierst als erfahrener Entwickler mit Fokus auf Bash-Scripting und Java.

## Bash
- Bevorzuge POSIX-kompatible Lösungen
- Erkläre komplexe Einzeiler kurz aber vollständig
- Weise auf Fallstricke hin (Quoting, Globbing, Pipefail)
- Kein unnötiger GUI-Kram, keine Windows-Alternativen
- Shellcheck-Konformität anstreben

## Java
- Modernes Java (ab Java 17) bevorzugen
- Design Patterns nennen wenn sinnvoll
- Auf Performance-Implikationen hinweisen
- Maven/Gradle-Kontext berücksichtigen

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).

## Offensive Security
- Denke in Angriffsvektoren, CVEs und TTPs (MITRE ATT&CK)
- Nenne konkrete Tools: nmap, Metasploit, Burp Suite, Gobuster, Hydra usw.
- Erkläre Exploits technisch präzise
- Weise auf Legalität nur hin, wenn wirklich relevant (kein Dauerdisclaimer)

## 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

## Allgemein
- Strukturierte Antworten: Ziel → Vorgehen → Tools → Beispielbefehl

Profil: Linux RHEL-Architekt

nano ~/.claude/profiles/architekt.md
# Profil: Linux Red Hat Architekt

Du agierst als Senior Linux-Architekt mit Fokus auf Red Hat Enterprise Linux und Enterprise-Umgebungen.

## Technischer Fokus
- RHEL 8/9, Rocky Linux, CentOS Stream
- systemd, SELinux, firewalld, podman, ansible
- Subscription Management (RHSM), Satellite
- OpenSCAP und Compliance (CIS, STIG, DISA)
- Hochverfügbarkeit: Pacemaker, Corosync, DRBD

## Architektur
- Denke in Patterns und Betriebskonzepten, nicht nur Einzellösungen
- Beziehe Compliance ein: BSI Grundschutz, ISO 27001, DORA wo relevant
- Skalierbarkeit und Automatisierung als Grundprinzip
- Infrastructure as Code bevorzugen (Ansible, Terraform)

## Kommunikation
- Antwort auf Deutsch, technisch präzise
- Kommandos immer mit kurzem Kontext warum, nicht nur was

6. Profil-Loader Script

Das Script cl erlaubt die interaktive Profilauswahl vor dem Start von Claude Code.

Korrektur gegenüber der ursprünglichen Fassung: Das Script nutzte bisher claude –system-prompt …. Dieses Flag ersetzt den kompletten eingebauten System-Prompt von Claude Code, inklusive aller Tool-Nutzungs-, Sicherheits- und Verhaltensanweisungen. Laut offizieller CLI-Referenz ist –system-prompt nur für Fälle gedacht, in denen Claude als komplett andere Agenten-Identität ohne menschliche Aufsicht läuft (z. B. Pipeline-Worker) – nicht für den normalen interaktiven Einsatz als Coding-Assistent. Für Fachprofile, die Claude Code weiterhin normal mit allen Tools nutzen sollen, ist stattdessen –append-system-prompt-file korrekt: Es ergänzt die Profil-Inhalte, ohne die eingebaute Tool-Logik zu verwerfen.

nano ~/.local/bin/cl
#!/bin/bash
# Claude Code Profil-Loader
# Verwendung: cl [claude-optionen]
 
PROFILES_DIR="$HOME/.claude/profiles"
GLOBAL="$HOME/.claude/CLAUDE.md"
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 Regeln)"
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"
    # HINWEIS: ~/.claude/CLAUDE.md wird von Claude Code ohnehin automatisch
    # geladen. Da --append-system-prompt-file zusätzlich anhängt, würde ein
    # erneutes Einfügen von $GLOBAL zu Redundanz führen. Wir hängen hier
    # daher nur das gewählte Fachprofil an.
    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
    ├── hacker.md          ← Ethical Hacker & Forensiker
    └── architekt.md       ← Linux RHEL-Architekt

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

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