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
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.
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.
mkdir -p ~/Claude cd ~/Claude
Dieser Ordner dient als zentrales Arbeitsverzeichnis für alle Claude-Projekte und -Konfigurationen.
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
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.
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).
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
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
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
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
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
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
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.
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).
cd ~/Claude/meinprojekt cl
claude
claude -p "Erkläre mir den Unterschied zwischen hard link und symbolic link"
claude --continue # letzte Session im aktuellen Verzeichnis fortsetzen claude --resume abc123 # bestimmte Session per ID fortsetzen
Im interaktiven Modus:
/exit
Oder: Strg + C
–dangerously-skip-permissions deaktiviert diese Nachfragen komplett – nur in isolierten, nicht-produktiven Umgebungen verwenden.–strict-mcp-config erzwingen, dass ausschließlich explizit angegebene MCP-Server geladen werden – sinnvoll für reproduzierbare, automatisierte Aufrufe./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.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
~/.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)