export
Crea variables de entorno que heredan los programas que lanzas.
Convierte una variable en variable de entorno: así los programas y scripts que lances desde esa terminal pueden leerla. Lo usas para configurar cosas como el PATH, el editor por defecto o claves que un programa espera encontrar. Es un comando interno de bash. Lo exportado dura lo que dura la terminal; para conservarlo, agrégalo a ~/.bashrc.
export [NOMBRE[=VALOR]]...Si escribes export PATH=/mi/carpeta sin incluir $PATH, reemplazas toda la lista y dejan de funcionar comandos como ls o sudo en esa terminal. Escribe siempre export PATH="$PATH:/mi/carpeta". Si ya pasó, cierra la terminal y abre otra.
Despiece
5 ejemplosCrear una variable para tus programas
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | export | Comando | Hace que la variable pase a los programas que lances. |
| 2 | EDITOR=nano | Valor | El nombre de la variable, un igual sin espacios y su valor. |
Los programas que abren un editor, como crontab -e o git commit, usarán nano. Solo vale en esta terminal.
Agregar una carpeta al PATH
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | export | Comando | Exporta la variable. |
| 2 | PATH="$PATH:$HOME/bin" | Valor | El PATH que ya tenías ($PATH), dos puntos y la carpeta nueva al final. |
Los programas que pongas en ~/bin se pueden ejecutar escribiendo solo su nombre. El $PATH del inicio es lo importante: sin él borrarías la lista completa.
Ver el valor de una variable
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | echo | Comando | Imprime texto. |
| 2 | $PATH | Valor | El signo $ se reemplaza por el valor de la variable. |
Imprime las carpetas donde la terminal busca comandos, separadas por dos puntos, por ejemplo /usr/local/bin:/usr/bin:/bin.
Pasar una variable solo a un comando
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | PUERTO=8080 | Valor | La variable y su valor, pegados antes del comando. |
| 2 | ./servidor.sh | Argumento | El programa que la recibe. |
servidor.sh recibe PUERTO=8080, pero la variable no queda en tu terminal. Es útil para probar sin dejar nada configurado.
Guardarla para siempre
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | echo | Comando | Imprime el texto que sigue. |
| 2 | 'export EDITOR=nano' | Argumento | La línea tal como quedará en el archivo. Las comillas simples evitan que $ se reemplace antes de tiempo. |
| 3 | >> | Operador | Agrega al final del archivo sin borrarlo. |
| 4 | ~/.bashrc | Argumento | El archivo que bash lee al abrir cada terminal. |
Cada terminal nueva tendrá EDITOR=nano. Para aplicarlo ya en la actual: source ~/.bashrc.
Opciones
Las que sí vas a usar| Opción | Qué hace |
|---|---|
| -p | Muestra todas las variables exportadas. |
| -n | Deja de exportar una variable: sigue existiendo en tu terminal, pero los programas nuevos ya no la reciben. |
Fallas comunes
| Falla | Remedio |
|---|---|
| Poner espacios alrededor del igual: export EDITOR = nano. | bash responde export: `=': not a valid identifier. Escríbelo pegado: export EDITOR=nano. |
| Borrar el PATH con export PATH=/mi/carpeta. | Reemplazaste la lista completa y ya no se encuentran ni ls ni sudo. Cierra esa terminal y abre otra. La forma correcta es export PATH="$PATH:/mi/carpeta". |
| Exportar en un script y esperar verla en tu terminal. | Un script corre en su propia copia del entorno y lo que exporta desaparece al terminar. Para que afecte tu terminal, cárgalo con source script.sh. |
| Crear la variable sin export y que el programa no la vea. | VARIABLE=valor a secas solo existe en tu terminal; los programas que lances no la reciben. Agrega export delante. |
Preguntas frecuentes
- ¿Qué hace export en Linux?
- Convierte una variable en variable de entorno, para que la reciban los programas y scripts que lances desde esa terminal. Sin export, la variable solo existe en la terminal misma.
- ¿Cómo agrego una carpeta al PATH?
- Con export PATH="$PATH:/ruta/carpeta". El $PATH del inicio conserva lo que ya tenías. Para que dure, agrega esa línea a ~/.bashrc.
- ¿Cómo veo mis variables de entorno?
- Con env o printenv ves todas. Para una sola: echo $NOMBRE o printenv NOMBRE.
- ¿Por qué mi variable desaparece al cerrar la terminal?
- Porque export solo afecta a la terminal actual y a lo que lances desde ella. Para que exista siempre, agrega la línea export a tu ~/.bashrc.