Este artículo del blog de Christian Hofstede-Kuhn revela una serie de trucos para la línea de comandos que, aunque no son secretos en sí mismos, a menudo se pasan por alto, lo que lleva a una experiencia de usuario menos eficiente. El objetivo es mejorar la productividad y reducir la frustración al interactuar con la terminal, especialmente para ingenieros que ya son competentes pero no han explorado a fondo las capacidades de su shell.
El artículo se divide en dos categorías de trucos: aquellos que funcionan en casi cualquier shell POSIX (como sh en FreeBSD o ksh en OpenBSD) y aquellos que son específicos de shells interactivos como Bash o Zsh, ofreciendo una mayor comodidad. Los trucos de uso universal incluyen atajos para la edición de líneas como CTRL + W (eliminar palabra), CTRL + U y CTRL + K (cortar líneas), CTRL + A y CTRL + E (ir al principio/final de la línea), ALT + B y ALT + F (navegar por palabras) y reset o stty sane para recuperar una terminal corrupta. También se incluyen comandos de rescate como CTRL + C (cancelar comando) y CTRL + D (enviar EOF). Otros trucos útiles son cd - (volver al directorio anterior), pushd y popd (gestionar una pila de directorios), > (vaciar un archivo sin borrarlo), $_ (acceder al último argumento del comando anterior) y CTRL + L (limpiar la pantalla).
Para usuarios de Bash y Zsh, se ofrecen atajos adicionales como CTRL + R (búsqueda inversa en el historial), !! (repetir el comando anterior con sudo), CTRL + X seguido de CTRL + E (abrir el comando en un editor externo) y ESC + . (insertar el último argumento). Finalmente, el artículo destaca la importancia de incluir set -e y set -u al principio de los scripts para mejorar la robustez y prevenir errores catastróficos. Estos comandos aseguran que el script se detenga en caso de error y que se detecten variables no definidas, respectivamente. En resumen, el artículo proporciona una guía práctica para optimizar el flujo de trabajo en la línea de comandos, transformando una experiencia a veces tediosa en una más fluida y eficiente.
