Aunque ya hayas eliminado una variable de entorno (como ANTHROPIC_BASE_URL) de ~/.zshrc, cuando lo compruebas en la terminal, ¡sorprendentemente sigue ahí!
¿Incluso volver a ejecutar source ~/.zshrc no sirve absolutamente de nada?
¿Cómo comprobar si existe una variable de entorno y en qué archivo de configuración se escribió?
Antes de comenzar con la limpieza, primero debes confirmar si la variable aún permanece en la memoria actual y qué archivo de configuración la está cargando automáticamente.
1. Comprobar variables en memoria
Comprueba si la variable de entorno aún permanece en la memoria actual de la Terminal
env | grep -i anthropic
2. Buscar archivos de configuración origen
Busca exhaustivamente en los archivos de configuración de Zsh, Bash y a nivel de sistema para averiguar qué archivo escribió 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
¿Por qué permanecen las variables de entorno antiguas tras modificar .zshrc?
En realidad, al abrir la terminal, las variables de entorno ya se han cargado en la “memoria” de esa conexión.
Aunque modifiques el archivo o vuelvas a ejecutar source ~/.zshrc, esto solo “recarga” el contenido del archivo de configuración y no elimina automáticamente las variables antiguas existentes en memoria.
El comando
sourcesolo sobrescribe o añade variables, no “elimina” variables por ti
En este punto, las soluciones más sencillas son las siguientes:
| Método de limpieza | Comando / Acción | Descripción |
|---|---|---|
| Abrir nueva ventana | Abrir una pestaña de terminal totalmente nueva | El nuevo Shell Process volverá a leer el ~/.zshrc más reciente |
| Eliminación manual | unset ANTHROPIC_BASE_URL |
Elimina directamente la variable de entorno especificada de la memoria actual |
| Reiniciar shell | exec zsh -l |
Recarga el estado de la memoria del Shell actual |
¿Reabrir ventanas de terminal sigue sin funcionar? Descubre a los 3 culpables principales
¿Por qué a veces, incluso después de abrir una ventana de terminal totalmente nueva, la variable de entorno antigua sigue ahí?
En este caso, el problema ya no está en ~/.zshrc, ¡sino que se hereda del “Proceso Padre (Parent Process)”!
Cuando inicias una terminal desde un programa o aplicación, el proceso hijo copia directamente la captura de variables de entorno del proceso padre en ese momento.
Si te encuentras con una variable de entorno tan persistente, suele deberse a las siguientes tres razones comunes:
| Tipo | Causa | Solución |
|---|---|---|
| Terminal integrada de IDE | VS Code, Cursor o Antigravity registraron la captura de variables de entorno al iniciar |
Presiona Cmd + Q para salir completamente del IDE y vuelve a abrirlo |
| Aplicación de Terminal no cerrada | Terminal o iTerm2 en Mac solo cerraron ventanas (Cmd + W), el programa principal sigue ejecutándose en segundo plano |
Presiona Cmd + Q para salir completamente de la aplicación Terminal |
| tmux | El Server en segundo plano de tmux sigue en ejecución, las nuevas pestañas heredan la configuración del inicio |
Ejecuta tmux kill-server para cerrar el servicio en segundo plano |
¿Reiniciar el software sigue siendo ineficaz? Comprueba herramientas de terceros y ajustes del sistema
Si los tres trucos anteriores fallan y la variable de entorno sigue apareciendo en la Terminal, es posible que ajustes de sistema de mayor nivel o herramientas de terceros estén actuando en segundo plano.
Permisos de sistema más altos o scripts envolventes (wrapper) restaurarán las variables de entorno automáticamente en cada inicio
En este caso, puedes utilizar los dos comandos de detección principales siguientes:
| Objetivo de detección | Comando | Descripción |
|---|---|---|
| Variables globales del sistema | launchctl getenv ANTHROPIC_BASE_URL |
Comprueba si herramientas proxy de terceros usan launchctl setenv para establecer variables globales |
| Scripts envolventes de comandos | type claude |
Comprueba si el comando actual es el ejecutable original o si está envuelto en un script wrapper con variables por defecto |
Pasos estándar de depuración para eliminar variables de entorno por completo
La próxima vez que modifiques o elimines variables de entorno en ~/.zshrc, recuerda confirmar primero: ¿La terminal actual hereda la configuración del antiguo Parent Process?
Sigue este orden de depuración para encontrar fácilmente la causa raíz y resolver el problema:
- Ejecuta primero
unset NOMBRE_VARIABLEo abre una ventana de terminal totalmente nueva. - Si usas un
IDEcomoVS CodeoCursor, presionaCmd + Qpara reiniciar completamente elIDE. - Si usas
tmux, ejecutatmux kill-serverpara reiniciar el servicio en segundo plano. - Comprueba los comandos
launchctl getenvytypepara inspeccionar el nivel de sistema y los scripts envolventes.