Operadores especiales
1. ; - Separador de comandos (ejecución secuencial) #
Qué hace #
Ejecuta varios comandos uno detrás de otro, siempre, independientemente de si el anterior falla o no.
Ejemplo #
1mkdir pruebas; cd pruebas; touch archivo.txt
✔ Se ejecutan los tres comandos pase lo que pase.
Uso típico #
- Ejecutar varios comandos rápidos
- No importa si alguno falla
⚠️ No comprueba errores.
2. && - AND lógico (ejecuta si todo va bien) #
Qué hace #
Ejecuta el segundo comando solo si el primero tuvo éxito.
Ejemplo #
1mkdir proyecto && cd proyecto
✔ Solo entra en proyecto si la carpeta se creó correctamente.
Uso típico #
- Scripts seguros
- Instalaciones
- Evitar errores en cadena
📌 Muy usado en terminal profesional.
3. || - OR lógico (ejecuta si falla) #
Qué hace #
Ejecuta el segundo comando solo si el primero falla.
Ejemplo #
1cd backup || echo "La carpeta backup no existe"
✔ El mensaje solo aparece si cd falla.
Uso típico #
- Mostrar mensajes de error
- Alternativas
- Manejo simple de fallos
4. & - Ejecución en segundo plano (background) #
Qué hace #
Ejecuta un comando en segundo plano, sin bloquear la terminal.
Ejemplo #
1sleep 10 &
✔ La terminal queda libre inmediatamente.
Otro ejemplo real #
1firefox &
Uso típico #
- Programas largos
- Servidores
- Procesos que no necesitan interacción
📌 El proceso sigue activo aunque sigas escribiendo comandos.
5. !! - Repetir el último comando #
Qué hace #
Repite el último comando ejecutado.
Es una expansión del historial de shells interactivas como Bash; no debe tratarse como un operador portable para scripts.
Ejemplo #
1ls 2!!
✔ Ejecuta otra vez ls.
Uso avanzado (muy común) #
1sudo !!
✔ Repite el último comando pero con permisos de administrador.
⚠️ Revisa el comando anterior antes de elevarlo: la expansión ocurre antes de ejecutar sudo.
🔥 Este es oro puro para terminal real.
6. Comparativa rápida #
| Operador | Qué hace |
|---|---|
; | Ejecuta todo, pase lo que pase |
&& | Ejecuta solo si el anterior va bien |
|| | Ejecuta solo si el anterior falla |
& | Ejecuta en segundo plano |
!! | Repite el último comando |
7. Ejemplo combinado #
1mkdir logs && cd logs || echo "No se pudo crear logs"
- Si se crea → entra
- Si falla → muestra mensaje
Resumen del tema
Conceptos clave #
- Código de Salida (Exit Code): todo comando devuelve un número entre 0 (éxito) y 1-255 (fallo), consultable con
echo $?. - Operador
;(Secuencial incondicional): ejecuta comandos sucesivamente uno tras otro, sin importar si el anterior tuvo éxito o falló. - Operador
&&(AND condicional): ejecuta el siguiente comando solo si el anterior terminó exitosamente (exit code == 0). - Operador
||(OR condicional): ejecuta el siguiente comando únicamente si el anterior falló (exit code != 0). - Operador
&(Segundo plano / Background): ejecuta el proceso de forma asíncrona liberando la terminal de inmediato.
Qué debes recordar #
Usa && para encadenar acciones que dependen del éxito previo (como make && make install o mkdir dir && cd dir) y || para manejar contingencias o mensajes de error.