Parte de la serie: Linux
Bash no es solo una pantalla negra con letras blancas; es el lenguaje universal para administrar servidores. Antes de automatizar tu infraestructura, necesitas fluidez en la línea de comandos.
En este post cubriremos desde la manipulación de archivos hasta la persistencia de tu entorno de trabajo.
1. Navegación y Manipulación de Archivos
Moverse por el sistema de archivos es la habilidad más básica. Olvida el explorador de archivos visual; aquí buscamos velocidad.
1.1 Listado y Navegación
Para saber dónde estás y qué hay alrededor, usaremos ls y pwd. No uses ls a secas, acostúmbrate a ver los detalles ocultos.
# Muestra ruta actual
pwd
# Listado detallado:
# -l: formato de lista (permisos, tamaño, dueño)
# -a: muestra ocultos (archivos que empiezan por punto)
# -h: tamaños legibles por humanos (KB, MB, GB)
ls -lah
1.2 Creación y Eliminación Inteligente
Crear directorios uno a uno es ineficiente. Usa la bandera -p para crear estructuras completas.
# Crea carpeta padre e hija simultáneamente
mkdir -p proyecto/logs
# Crea un archivo vacío rápidamente
touch proyecto/README.md
Para eliminar, ten precaución extrema. rm no tiene papelera de reciclaje.
# Elimina un archivo
rm archivo.txt
# Elimina un directorio y todo su contenido (CUIDADO)
rm -rf proyecto/
2. Tuberías (Pipes) y Redirecciones
El verdadero poder de Linux radica en conectar pequeños programas entre sí. La salida de un comando se convierte en la entrada del siguiente.
2.1 El operador Pipe (|)
Usa | para pasar información entre comandos. El caso de uso más común es filtrar resultados con grep.
# Busca procesos relacionados con 'python'
ps aux | grep python
# Busca errores en un log en tiempo real
tail -f /var/log/syslog | grep "error"
2.2 Redirección de Salida (> y >>)
A veces necesitas guardar el resultado de un comando en un archivo.
>: Sobrescribe el archivo (borra lo anterior).>>: Añade al final del archivo (append).
# Guarda la lista de archivos en un txt (sobrescribe)
ls -lah > contenido.txt
# Añade una línea de log al final del archivo
echo "Backup finalizado: $(date)" >> backup.log
Verifica el contenido sin abrir un editor:
cat backup.log
3. Permisos y Propiedad
En servidores Linux, los problemas “que no tienen sentido” suelen ser problemas de permisos.
3.1 Entendiendo chmod
Los permisos se dividen en Lectura (r), Escritura (w) y Ejecución (x).
# Hacer un script ejecutable (fundamental para scripts propios)
chmod +x mi_script.sh
# Quitar permisos de escritura a 'otros' usuarios
chmod o-w archivo_sensible.conf
3.2 Cambiar de dueño con chown
Si usas Docker o servicios systemd, a menudo tendrás que arreglar la propiedad de los archivos.
# Cambia el dueño al usuario 'www-data' y grupo 'www-data' de forma recursiva
sudo chown -R www-data:www-data /var/www/html
4. El archivo .bashrc
Ahora que dominas los comandos, notarás que configurar el entorno cada vez que entras es tedioso. Si ejecutas configuraciones en la terminal, los cambios se pierden al cerrar la sesión. Para hacerlos permanentes, usamos el archivo .bashrc.
Este archivo se encuentra en tu directorio personal (~/.bashrc) y se ejecuta automáticamente cada vez que abres una nueva terminal interactiva.
4.1 Editar el .bashrc
Para editarlo, usa tu editor favorito:
nano ~/.bashrc
Al final del archivo puedes añadir tus personalizaciones.
4.2 Alias útiles
Los alias son atajos para comandos largos que acabamos de ver. Aquí tienes una configuración recomendada para empezar:
# Actualizar el sistema con una sola palabra
alias update='sudo apt update && sudo apt upgrade -y'
# Navegación rápida (subir niveles)
alias ..='cd ..'
alias ...='cd ../..'
# Listado mejorado por defecto
alias ll='ls -alFh'
# Confirmación antes de borrar/sobrescribir (seguridad)
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
5. Variables de entorno
Las variables de entorno almacenan información global que usan los programas y la shell (como rutas de instalación o claves de API).
5.1 Definir una variable
Para definir una variable temporalmente:
export MI_PROYECTO="/opt/mi_app"
Para hacerla permanente, añade la línea anterior al final de tu .bashrc.
5.2 Ver variables
Puedes ver todas las variables con el comando env o imprimir una específica con echo:
echo $HOME
echo $PATH
6. Aplicar los cambios
Después de editar tu .bashrc, los cambios no se aplican inmediatamente en la terminal actual. Tienes dos opciones: cerrar y volver a abrir la terminal, o recargar la configuración en caliente con source:
source ~/.bashrc
O su forma abreviada:
. ~/.bashrc
¡Ahora tu configuración está lista y persistirá entre sesiones!