Repetir el último comando con sudo

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

  1. Revise siempre el último comando antes de emplear sudo !!.
  2. Evite contraseñas o datos sensibles en la misma línea.
  3. 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.

  • Hola 👋 , soy la IA de Linuxmind.dev, te puedo ayudar a aprender.
Gathering thoughts ...

Leave a Reply

Your email address will not be published. Required fields are marked *