La pregunta "¿Qué es Bash?" se abordó en el artículo ¿Qué es Linux Bash y ¿cómo utilizarlo?En esta guía, profundizaremos en Bash, explorando sus características, capacidades y funcionalidades clave.
Bash (Bourne-Again SHell) Es la consola de comandos predeterminada para sistemas tipo Unix, que combina potencia de automatización, gestión flexible de procesos y facilidad de scripting. Esta guía de referencia cubre aspectos clave del trabajo con Bash: comandos básicos de navegación y gestión de archivos, redirección de E/S, variables, bucles, condiciones y consejos de productividad (alias, autocompletado, historial de comandos). El material es adecuado tanto para principiantes que aprenden a usar la terminal como para usuarios experimentados que buscan una referencia rápida para las tareas diarias, desde la administración de servidores hasta la automatización de rutinas.
Bash es una herramienta extremadamente versátil capaz de realizar numerosas funciones. A continuación, se muestra una tabla de comandos esenciales de Bash, clasificados por caso de uso:
Hoja de trucos de comandos Bash por categoría
- Ejecución de comandos y programas
- Función:
- Ejecutar programas, utilidades y scripts.
- Comandos/construcciones:
- ls, grep, mkdir, cd, chmod, ./script.sh, bash.
- Función:
- Automatización y secuencias de comandos
- Función:
- Crear y ejecutar scripts, condiciones y bucles.
- Comandos/construcciones:
- si, para, mientras, función, caso, salida, prueba.
- Función:
- Variables y manejo de datos
- Función:
- Crear variables, operaciones aritméticas y de cadenas.
- Comandos/construcciones:
- var=valor, exportar, desarmar, ${var}, $((expresión)).
- Función:
- Gestión de procesos y señales
- Función:
- Gestionar procesos y señales.
- Comandos/construcciones:
- & (fondo), matar, killall, trabajos, fg, bg, Ctrl+C (SIGINT), Ctrl+Z (SIGTSTP).
- Función:
- Redirección de E/S y canalizaciones
- Función:
- Controlar flujos de datos.
- Comandos/construcciones:
- >, >>, 2>, &>, |.
- Función:
- Gestión del sistema de archivos y globbing
- Función:
- Navegación, operaciones con archivos, coincidencia de patrones.
- Comandos/construcciones:
- cp, mv, rm, *, ?, [], {}.
- Función:
- Interacción y conveniencia del usuario
- Función:
- Historial, autocompletado, alias.
- Comandos/construcciones:
- historial, !!, !n, Tab, alias, hombre, --ayuda.
- Función:
- Expansión avanzada
- Función:
- Generar secuencias y patrones.
- Comandos/construcciones:
- {}, ~, $().
- Función:
Símbolos/Operadores: >, >>, |, &, *, ?, [], {}, ~ — no son comandos pero se usan ampliamente en Bash para el control de datos y procesos.
Combinaciones de teclas: Ctrl+C, Ctrl+Z, Tab — atajos para el control de procesos y autocompletado.
Construcciones de scripts: si, para, mientras, función — elementos de sintaxis para escribir scripts.
Para conocer métodos de creación de scripts detallados, consulte Linux Conceptos básicos de bash. Guía de secuencias de comandos, y las explicaciones de los comandos se pueden encontrar en Batalla Linux Hoja de referencia de comandosA continuación, nos centraremos en variables y entorno, gestión de procesos, redirección de E/S, historial de comandos, alias, sustituciones y teclas de acceso rápido.
Variables y entorno
Las variables locales almacenan datos de la sesión actual:
name="User" # no spaces around '='
echo $name # output: User
Exportar variables para que estén disponibles para los procesos secundarios (por ejemplo, scripts):
export EDITOR=nano # set default editor
Variables especiales:
$? — código de salida del último comando (0 = éxito);
$$ — PID del proceso actual;
$ RUTA — rutas de búsqueda de ejecutables.
Sustituciones por flexibilidad:
${var:-default} — devuelve el valor predeterminado si var no está configurado;
${str// /_} — reemplaza todos los espacios con guiones bajos.
Consejo: Configure las variables de entorno en ~ / .bashrc Persistir a lo largo de las sesiones.
Gestión de proceso
Modo de fondo: agregue & para ejecutar un comando en segundo plano:
sleep 30 & # run in background
Pausa/reanudar:
Ctrl + Z — pausar un proceso;
fg — reanudar en primer plano, bg — continuar en segundo plano.
Terminar procesos:
Ctrl + C — terminación elegante (SIGINT);
matar -9 PID — terminación forzada (SIGKILL).
Encontrar un PID de proceso:
pgrep firefox # find PID by name
ps aux | grep ssh # search via filter
Redirección de E / S
Flujos de datos de control:
stdin (entrada), stdout (salida), stderr (errores).
Operadores clave:
- > — sobrescribir un archivo:
-
ls > files.txt # save file list
- >> — añadir a un archivo;
2> — redirigir errores a un archivo: -
grep "text" nofile.txt 2> errors.log
| — salida de tubería entre comandos:
-
cat logs.txt | grep "ERROR" | sort
Redirección combinada:
-
script.sh &> output.log # combine stdout + stderr
Sustituciones (Expansión de parámetros)
Manipulación de cuerdas:
- Eliminar parte de una cadena:
-
file="/home/user/doc.txt"
echo ${file##*/} # doc.txt (like `basename`)
-
- Reemplazar texto:
-
str="hello world"
echo ${str// /_} # hello_world
-
Generación de listas:
echo file.{txt,log} # file.txt file.log
Aritmética:
echo $((10 / 2)) # 5
Teclas de acceso rápido
Edición de comandos:
Ctrl+A / Ctrl+E — saltar al inicio/final de la línea;
Ctrl+W / Alt+D — eliminar palabra izquierda/derecha;
Ctrl + T — intercambiar personajes.
Historial de comandos:
Ctrl + R — historial de búsqueda;
!! — repetir el último comando;
!$ — utiliza el último argumento del comando anterior.
Autocompletado:
Pestaña — autocompletar nombre de archivo/comando;
Doble pestaña — mostrar todas las opciones.
Consejos importantes
Alias para comandos frecuentes:
alias ll='ls -alh' # add to ~/.bashrc
Uso del historial:
history|grep "git"# find all "git" commands
Corrección rápida:
^old^new # replace "old" with "new" in last command