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
- Funcionalidad:
- Ejecutar programas, utilidades y scripts.
- Comandos/construcciones:
- ls, grep, mkdir, cd, chmod, ./script.sh, bash.
- Funcionalidad:
- Automatización y secuencias de comandos
- Funcionalidad:
- Crear y ejecutar scripts, condiciones y bucles.
- Comandos/construcciones:
- si, para, mientras, función, caso, salida, prueba.
- Funcionalidad:
- Variables y manejo de datos
- Funcionalidad:
- Crear variables, operaciones aritméticas y de cadenas.
- Comandos/construcciones:
- var=valor, exportar, desarmar, ${var}, $((expresión)).
- Funcionalidad:
- Gestión de procesos y señales
- Funcionalidad:
- Gestionar procesos y señales.
- Comandos/construcciones:
- & (fondo), matar, killall, trabajos, fg, bg, Ctrl+C (SIGINT), Ctrl+Z (SIGTSTP).
- Funcionalidad:
- Redirección de E/S y canalizaciones
- Funcionalidad:
- Controlar flujos de datos.
- Comandos/construcciones:
- >, >>, 2>, &>, |.
- Funcionalidad:
- Gestión del sistema de archivos y globbing
- Funcionalidad:
- Navegación, operaciones con archivos, coincidencia de patrones.
- Comandos/construcciones:
- cp, mv, rm, *, ?, [], {}.
- Funcionalidad:
- Interacción y conveniencia del usuario
- Funcionalidad:
- Historial, autocompletado, alias.
- Comandos/construcciones:
- historial, !!, !n, Tab, alias, hombre, --ayuda.
- Funcionalidad:
- 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:
echo $name # salida: Usuario
Exportar variables para que estén disponibles para los procesos secundarios (por ejemplo, scripts):
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:
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:
ps auxiliar | grep ssh # buscar mediante filtro
Redirección de E / S
Flujos de datos de control:
stdin (entrada), stdout (salida), stderr (errores).
Operadores clave:
- > — sobrescribir un archivo:
-
ls > files.txt # guardar lista de archivos
- >> — añadir a un archivo;
2> — redirigir errores a un archivo: -
grep "texto" nofile.txt 2> errores.log
| — salida de tubería entre comandos:
-
cat logs.txt | grep "ERROR" | ordenar
Redirección combinada:
-
script.sh &> output.log # combina la salida estándar y la salida estándar
Sustituciones (Expansión de parámetros)
Manipulación de cuerdas:
- Eliminar parte de una cadena:
-
archivo="/home/usuario/doc.txt"
echo ${file##*/} # doc.txt (como `nombrebase`)
-
- Reemplazar texto:
-
str="hola mundo"
echo ${str// /_} # hola_mundo
-
Generación de listas:
Aritmética:
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 Profesionales
Alias para comandos frecuentes:
Uso del historial:
Corrección rápida:
Preguntas frecuentes: Hoja de trucos de Bash
- P1: ¿Qué es Bash y por qué debería usarlo?
A1: Bash (Bourne-Again Shell) es la línea de comandos predeterminada para sistemas tipo Unix. Combina automatización, scripting y gestión de procesos, lo que la hace ideal para la administración de servidores, tareas de automatización y el trabajo diario con terminales. - Q2: ¿Cómo creo y uso variables en Bash?
A2: Puede definir una variable local con name="value" y acceder a ella mediante $name. Para que esté disponible para los procesos secundarios, utilice export name=value. Variables especiales como $?, $$ y $PATH proporcionan el estado de salida del comando, el ID del proceso y las rutas del sistema. - Q3: ¿Cómo puedo administrar procesos en Bash?
A3: Use & para ejecutar comandos en segundo plano, fg y bg para reanudar trabajos, y Ctrl+C o kill -9 PID para finalizarlos. Use pgrep o ps aux | grep para buscar los ID de los procesos. - Q4: ¿Cuáles son los principales operadores de redirección de E/S?
A4: Los operadores clave incluyen:
> - sobrescribir un archivo
>> - añadir a un archivo
2> - errores de redirección
&> - combina stdout y stderr
| - salida de tubería entre comandos - Q5: ¿Cómo puedo simplificar tareas repetitivas en Bash?
A5: Utilice alias (por ejemplo, alias ll='ls -alh') y atajos del historial de shell como !! para repetir el último comando, !$ para el último argumento o Ctrl+R para buscar en el historial de comandos. - P6: ¿Cuáles son las teclas de acceso rápido útiles para editar comandos en Bash?
A6: Los atajos más comunes incluyen:
Ctrl+A / Ctrl+E - saltar al inicio/final de la línea
Ctrl+W / Alt+D - eliminar palabras
Ctrl+T - intercambiar caracteres
Pestaña - autocompletar comandos o nombres de archivos - Q7: ¿Cómo puedo realizar manipulación de cadenas o operaciones aritméticas en Bash?
A7: Utilice la expansión de parámetros ${var//search/replace} para cadenas, ${file##*/} para extraer nombres de archivos y $((expression)) para cálculos aritméticos. - P8: ¿Puede Bash manejar bucles y condiciones para la automatización?
A8: Sí. Utilice construcciones for, while, if, case y function para escribir scripts que automaticen tareas de manera eficiente.