Aller au contenu

Claude Code — Shell WSL vs Git Bash : leçons complètes

tags: #claude-code #wsl #git-bash #shell #windows #chemins #mingw #msys2 #configuration #piege #bonne-pratique


Contexte

Claude Code sur Windows peut s'exécuter dans deux environnements shell radicalement différents selon la façon dont il est lancé. Confondre les deux provoque des erreurs de chemins, des outils inaccessibles, et des comportements inattendus.


Les deux environnements possibles

Git Bash (MinGW/MSYS2) — comportement par défaut sur Windows

Quand Claude Code est lancé depuis Git Bash ou depuis le terminal Windows standard :

  • uname -aMINGW64_NT-10.0-26200 ... Msys
  • $SHELL/bin/bash.exe (.exe = binaire Windows)
  • $HOME/c/Users/Bernard KANMAOZO
  • /mnt/non monté (n'existe pas)
  • Disque C: accessible via → /c/Users/...
  • Outils WSL (node, npm, npx, prisma installés dans Ubuntu) → non accessibles

WSL2 (Linux natif) — comportement souhaité

Quand Claude Code est lancé depuis un terminal WSL Ubuntu :

  • uname -aLinux ... microsoft-standard-WSL2
  • $SHELL/bin/bash (bash Linux natif, sans .exe)
  • $HOME/home/kanmaber
  • /mnt/c/monté automatiquement (disque C: Windows)
  • Disque C: accessible via → /mnt/c/Users/...
  • Outils WSL (node, npm, npx, prisma) → pleinement accessibles

Comment /mnt/c est-il monté automatiquement dans WSL2 ?

WSL2 monte les disques Windows automatiquement au démarrage de la session WSL, sans aucune configuration manuelle. Par défaut :

  • Tous les disques Windows (C:, D:...) sont montés sous /mnt/
  • Le montage est immédiat dès l'ouverture d'un terminal WSL
  • Aucune commande mount à exécuter manuellement

Condition unique : être dans une vraie session WSL (pas Git Bash).


Comment accéder au disque C: depuis Git Bash ?

Dans Git Bash (MinGW/MSYS2), /mnt/ n'existe pas. Le disque C: est accessible via :

/c/Users/Bernard KANMAOZO/...

La bonne pratique — lancer Claude depuis WSL

# 1. Ouvrir WSL (une de ces méthodes)
Win+R  wsl
# ou : Windows Terminal → onglet Ubuntu
# ou : PowerShell/CMD → wsl

# 2. Naviguer vers le projet
cd ~/projets/PsychoEnLigneV2

# 3. Lancer Claude
claude

Vérification rapide dans la session Claude : - uname -a doit retourner Linux ... WSL2 (pas MINGW) - $HOME doit être /home/kanmaber (pas /c/Users/...) - ls /mnt/c doit lister le disque C:


Pièges à éviter

Piège Conséquence Solution
Lancer Claude depuis Git Bash Shell MinGW, /mnt/ absent, outils WSL inaccessibles Toujours lancer depuis WSL
Écrire /mnt/c/ dans CLAUDE.md si session Git Bash Chemins introuvables /c/ si Git Bash, /mnt/c/ si WSL
Taper $SHELL = /bin/bash pour changer le shell Erreur : =: No such file or directory Impossible en cours de session — relancer depuis WSL
Chercher un setting Claude Code pour changer le shell Perte de temps Aucun setting ne change le shell du Bash tool — seul le terminal de lancement compte
Croire que SHELL=/bin/bash dans Git Bash suffit Ne change rien pour Claude Le shell est hérité du processus parent, pas configurable après coup

Chemins selon le contexte — tableau de référence

Ressource Git Bash (MinGW) WSL2
Disque C: /c/ /mnt/c/
Documents Windows /c/Users/Bernard KANMAOZO/Documents/ /mnt/c/Users/Bernard KANMAOZO/Documents/
Second cerveau /c/Users/Bernard KANMAOZO/Documents/MesDocs/second-cerveau /mnt/c/Users/Bernard KANMAOZO/Documents/MesDocs/second-cerveau
Projet original PsychoEnLigne /c/Users/Bernard KANMAOZO/Documents/mesProjetsDevs/PsychoEnLigne/ /mnt/c/Users/Bernard KANMAOZO/Documents/mesProjetsDevs/PsychoEnLigne/
Home Linux inexistant /home/kanmaber/

Mots-clés / nœuds graphiques Obsidian

  • claude-codeshellwsl2git-bash
  • mingwmsys2bash-exe
  • wsl2mnt-cmontage-automatique
  • git-bashslash-cchemins-windows
  • configurationclaude-codebonne-pratique
  • piegeshellerreur-chemin

Historique des corrections dans CLAUDE.md

  • 20260428_1430 — Chemins second cerveau et projet original corrigés de /c//mnt/c/ après passage à WSL2
  • 20260428_1430 — Format de date standardisé : YYYYMMDD_HHMM via $(date '+%Y%m%d_%H%M')
  • 20260428_XXXX — Première version (MinGW uniquement, conclusion erronée : "Claude utilisera toujours MinGW")