Introducción
En entornos Linux y Unix es habitual ejecutar comandos que requieren permisos elevados. Olvidar anteponer sudo a una orden puede resultar frustrante: debe ejecutarse de nuevo, copiar/pegar o reescribirla. Afortunadamente existe un truco sencillo y poderoso para repetir el último comando con sudo sin necesidad de reescritura: sudo !!
.
¿Por qué surge este problema
- Falta de experiencia con la terminal.
- Uso intensivo de tuberías y redirecciones.
- Flujo de trabajo rápido donde cada segundo cuenta.
El truco: sudo !!
La variable !!
hace referencia al último comando en la historia de la sesión. Con sudo !!
se re-ejecuta dicho comando bajo privilegios de superusuario. Ejemplo:
apt-get update
E: Necesita privilegios de administrador
sudo !!
sudo apt-get update
...
Detalles internos
El shell Bash guarda un historial que puede ser consultado con history
. Cuando usamos !!
, Bash lo expande al comando correspondiente antes de la ejecución.
Atajo | Descripción |
---|---|
!! | Último comando completo |
!número | Comando con índice indicado |
!cadena | Último comando que comienza con “cadena” |
Ventajas y consideraciones
- Velocidad: Ahorra tiempo vs reescribir la orden completa.
- Seguridad: No recomendable para comandos que incluyan contraseñas o datos sensibles sin revisión.
- Compatibilidad: Funciona en Bash y shells compatibles (Zsh, etc.).
Alias y extensiones útiles
Para hacerlo aún más breve, puede crearse un alias:
alias please=sudo !!
# A continuación, tras un comando:
apt install htop
please
Si usa Oh My Zsh, existe el plugin sudo
que automáticamente reintenta el último comando con permisos.
Casos de uso con VPN
Al trabajar con servicios o herramientas de red que requieren permisos y una conexión segura, este truco es muy valioso. Ejemplos de VPN populares:
- OpenVPN: Configuración y comprobación de túneles.
- WireGuard: Levantar interfaces.
- NordVPN: Configuración de clientes.
- ExpressVPN: Verificación de rutas antes y después de conexión.
Seguridad y buenas prácticas
- Revise siempre el último comando antes de emplear
sudo !!
. - Evite contraseñas o datos sensibles en la misma línea.
- Use
sudoedit
para editar archivos de configuración con!!
si es necesario:
vim /etc/hosts
sudoedit !!
Configuración avanzada
Para registrar cada uso de sudo
con !!
, configure sudo log input en /etc/sudoers
:
Defaults log_input, log_output
Defaults!/usr/bin/!! !log_output
Así se audita el uso y su historial queda más completo.
Conclusión
El uso de sudo !!
es un auténtico game changer para cualquier usuario de Linux. Reduce pasos, agiliza el flujo de trabajo y, con las precauciones adecuadas, mantiene la seguridad. Aproveche esta técnica y combine alias o plugins para maximizar su productividad en la terminal.
Leave a Reply