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-permissionsdeaktiviert diese Nachfragen komplett – nur in isolierten, nicht-produktiven Umgebungen verwenden. - Bei Nutzung von MCP-Servern (externe Tool-Anbindungen) kann
–strict-mcp-configerzwingen, 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)
