Même si vous avez déjà supprimé une variable d'environnement (telle que ANTHROPIC_BASE_URL) de ~/.zshrc, lorsque vous vérifiez dans le terminal, elle est étonnamment toujours là !
Même réexécuter source ~/.zshrc est totalement inutile ?
Comment vérifier si une variable d’environnement existe et par quel fichier de configuration elle a été écrite ?
Avant de procéder au nettoyage, vous devez d’abord confirmer si la variable est toujours présente dans la mémoire actuelle et quel fichier de configuration la charge automatiquement.
1. Vérifier les variables en mémoire
Vérifiez si la variable d'environnement est toujours présente dans la mémoire du Terminal actuel
env | grep -i anthropic
2. Rechercher les fichiers de configuration sources
Recherchez minutieusement dans les fichiers de configuration de Zsh, Bash et au niveau du système pour identifier le fichier qui a écrit la variable
grep -rn "ANTHROPIC_BASE_URL" ~/.zshrc ~/.zprofile ~/.zshenv ~/.zlogin ~/.bashrc ~/.bash_profile ~/.profile /etc/zshenv /etc/zprofile /etc/profile /etc/environment 2>/dev/null
Pourquoi les anciennes variables d’environnement restent-elles après modification de .zshrc ?
En réalité, lorsque vous ouvrez un terminal, les variables d'environnement sont déjà chargées dans la “mémoire” de cette session.
Même si vous modifiez le fichier ou réexécutez source ~/.zshrc, cela ne fait que “recharger” le contenu du fichier de configuration et ne supprime pas automatiquement les anciennes variables présentes en mémoire.
La commande
sourcene fait que remplacer ou ajouter des variables, elle ne “supprime” pas les variables pour vous
À ce stade, les solutions les plus simples sont les suivantes :
| Méthode de nettoyage | Commande / Action | Description |
|---|---|---|
| Ouvrir une nouvelle fenêtre | Ouvrir un tout nouvel onglet de terminal | Le nouveau Shell Process relira le fichier ~/.zshrc le plus récent |
| Suppression manuelle | unset ANTHROPIC_BASE_URL |
Supprime directement la variable d'environnement spécifiée de la mémoire actuelle |
| Réinitialiser le shell | exec zsh -l |
Recharge l’état de la mémoire du Shell actuel |
Réouvrir les fenêtres de terminal ne change rien ? Découvrez les 3 causes principales
Pourquoi arrive-t-il parfois que même après avoir ouvert une toute nouvelle fenêtre de terminal, l’ancienne variable d'environnement persiste ?
Dans ce cas, le problème ne se situe plus dans ~/.zshrc, mais est hérité du “Processus Parent (Parent Process)” !
Lorsque vous lancez un terminal depuis une application logicielle, le processus enfant copie directement l’instantané des variables d’environnement du processus parent à ce moment-là.
Si vous rencontrez une variable d'environnement aussi tenace, cela est généralement dû aux trois raisons courantes suivantes :
| Type | Cause | Solution |
|---|---|---|
| Terminal intégré d’IDE | VS Code, Cursor ou Antigravity ont enregistré l’instantané des variables d’environnement au démarrage |
Appuyez sur Cmd + Q pour quitter complètement l’ IDE puis rouvrez-le |
| Application Terminal non fermée | Terminal ou iTerm2 sur Mac ont seulement fermé les fenêtres (Cmd + W), le programme principal tourne en arrière-plan |
Appuyez sur Cmd + Q pour quitter complètement l’application Terminal |
| tmux | Le Server en arrière-plan de tmux fonctionne en continu, les nouveaux onglets héritent des paramètres du démarrage |
Exécutez tmux kill-server pour fermer le service en arrière-plan |
Redémarrer le logiciel est toujours inefficace ? Vérifiez les outils tiers et les paramètres système
Si les trois astuces ci-dessus échouent et que la variable d'environnement apparaît toujours dans le Terminal, des paramètres système de niveau supérieur ou des outils tiers agissent peut-être en arrière-plan.
Des autorisations système plus élevées ou des scripts d’enveloppement (wrapper) restaureront automatiquement les variables d’environnement à chaque démarrage
Dans ce cas, vous pouvez utiliser les deux commandes de détection principales suivantes :
| Cible de détection | Commande | Description |
|---|---|---|
| Variables globales du système | launchctl getenv ANTHROPIC_BASE_URL |
Vérifiez si des outils proxy tiers utilisent launchctl setenv pour définir des variables globales |
| Scripts d’enveloppement de commandes | type claude |
Vérifiez si la commande actuelle est l’exécutable d’origine ou s’il est enveloppé dans un script wrapper avec des variables par défaut |
Étapes de dépannage standard pour supprimer complètement les variables d’environnement
La prochaine fois que vous modifierez ou supprimerez des variables d'environnement dans ~/.zshrc, pensez à vérifier d’abord : Le terminal actuel hérite-t-il des anciens paramètres du Parent Process ?
Suivez cet ordre de vérification pour identifier facilement la cause racine et résoudre le problème :
- Exécutez d’abord
unset NOM_DE_VARIABLEou ouvrez une toute nouvelle fenêtre de terminal. - Si vous utilisez un
IDEcommeVS CodeouCursor, appuyez surCmd + Qpour redémarrer complètement l’IDE. - Si vous utilisez
tmux, exécuteztmux kill-serverpour réinitialiser le service en arrière-plan. - Vérifiez les commandes
launchctl getenvettypepour inspecter le niveau système et les scripts d’enveloppement.