Comandos útiles para gestionar el entorno en Bash
Este anexo complementa la lección sobre variables de entorno, presentando comandos clave que te permiten crear archivos, cargar configuraciones, gestionar el caché de comandos y entender cómo Bash interactúa con el entorno del sistema.
touch
: crea archivos vacíos o actualiza su marca temporal
touch archivo.txt
- Si el archivo no existe, lo crea vacío.
- Si el archivo ya existe, actualiza su fecha de modificación (timestamp).
touch uno.txt dos.txt tres.txt
Nota: touch
no ejecuta ni carga nada en el entorno. Solo asegura que un archivo exista o actualiza su fecha.
source
(.
): ejecuta scripts en el entorno actual
source archivo.sh
# o
. archivo.sh
- Ejecuta el contenido del archivo dentro del shell actual.
- Las variables, alias o funciones definidas quedan disponibles después.
Nota: Usa source
tras editar archivos como .bashrc
o .bash_aliases
para aplicar cambios sin reiniciar la terminal.
hash
: gestiona el caché de comandos
hash # Muestra los comandos cacheados y sus rutas
hash -r # Limpia el caché
- Bash guarda en caché la ruta de los comandos.
- Si instalas un nuevo programa o modificas
$PATH
, usahash -r
.
which, type, command -v
: localiza y describe comandos
which python
type python
command -v python
which
: muestra la ruta del ejecutable (menos confiable).type
: indica si es un alias, función o comando externo.command -v
: más fiable y apto para scripts.
env
: ejecuta comandos con variables de entorno modificadas
env # Muestra todas las variables de entorno
env VAR=valor cmd # Ejecuta cmd con esa variable
env -i cmd # Ejecuta cmd con entorno vacío
- Ver variables activas.
- Probar un entorno limpio o temporal.
printenv
y export
: consulta y define variables de entorno
printenv # Lista todas las variables de entorno
printenv VAR # Muestra una variable específica
export VAR=valor # Define o actualiza una variable
Listar todas las variables del entorno
declare -p
compgen -v
(set -o posix ; set) | less
Ejemplo práctico de varios comandos
echo 'export SALUDO="¡Hola desde Bash!"' > config.sh
source config.sh
echo $SALUDO
touch log.txt
which bash
hash -r
Persistir variables en .bashrc
nano ~/.bashrc
Agrega:
export EDITOR=nano
export PATH="$PATH:$HOME/bin"
export LOG_DIR="$HOME/logs"
source ~/.bashrc
Script que define variables para su entorno
#!/bin/bash
export SALUDO="Hola, mundo"
export DIA=$(date +%A)
echo "Mensaje: $SALUDO"
echo "Hoy es $DIA"
Nota: Estas variables no persisten tras la ejecución si usas bash script.sh
.
Cómo conservar variables tras ejecutar un script
# config.sh
export USERNAME="usuario"
export IDIOMA="español"
# Terminal
source config.sh
echo $USERNAME
Script que usa variables de entorno
#!/bin/bash
echo "Usuario actual: $USER"
export RUTA_BACKUP="$HOME/backups"
mkdir -p "$RUTA_BACKUP"
echo "Backup guardado en $RUTA_BACKUP/backup.txt" > "$RUTA_BACKUP/backup.txt"
Resumen visual
Acción | Resultado |
---|---|
VAR=valor |
Sólo en la terminal actual |
export VAR=valor |
Disponible en procesos hijos |
source script.sh |
Variables conservadas en tu entorno |
bash script.sh |
Variables viven sólo dentro del script |
Buenas prácticas al gestionar el entorno en Bash
- Declara variables persistentes en
~/.bashrc
o~/.bash_profile
. - Usa
export
solo cuando necesites herencia en procesos hijos. - Recarga configuraciones con
source
tras modificarlas. - Evita sobreescribir variables globales como
PATH
sin precaución. - Documenta variables en tus scripts: qué hacen y por qué las usas.
- Prefiere
command -v
sobrewhich
en scripts portables. - Limpia el caché con
hash -r
si cambias rutas de comandos.
- Anterior « Alias
- Siguiente Fin del tema »