Corral: herramienta de Linux para gestionar procesos con límites estrictos

Corral es una herramienta de línea de comandos para Linux diseñada para garantizar que todos los procesos iniciados por un comando específico terminen correctamente antes de que el script principal retorne. A diferencia de los ejecutores estándar, como 'timeout' o los runners de agentes de IA, corra

Por qué dominar la línea de comandos supera a las interfaces gráficas

Dominar la línea de comandos permite a los desarrolladores orquestar programas de forma lógica y eficiente, una capacidad que las interfaces gráficas (GUI) no ofrecen de manera nativa. A diferencia de las herramientas visuales, el shell permite ejecutar scripts complejos que integran múltiples proce

Configurar un único .zshrc para macOS y Windows WSL2

El artículo detalla una estrategia de ingeniería de software para mantener una única configuración de shell en macOS y Windows mediante WSL2. El autor, un desarrollador que utiliza Z shell (zsh) y la herramienta de gestión de archivos dotfiles chezmoi, explica cómo evitar la fragmentación de configu

Cómo servir una web tras una IP de dial-up volátil con un proxy inverso

Un usuario con un homelab conectado mediante un enlace dial-up describe una solución casera para mantener accesible un servidor web cuando la dirección IP cambia con cada reconexión inesperada del DSL. La premisa es que, aunque existe el DNS dinámico, este no avisa a los servidores externos (en este

Cómo formatear JSON del portapapeles con jq

jq es una utilidad de línea de comandos para procesar y formatear JSON que resulta especialmente práctica para depurar respuestas de APIs, inspeccionar archivos de configuración o leer datos en la terminal. El artículo muestra un truco sencillo: crear un alias, llamado jsontidy, que toma el contenid

Los LLM son la prueba de que Unix ganó

Los grandes modelos de lenguaje (LLM) representan, según esta reflexión, la culminación imprevista de la filosofía Unix: la idea de que el texto es una interfaz universal entre programas y usuarios. El artículo recorre la trayectoria personal del autor, que pasó de la interfaz gráfica de Windows 3.1

Un alias para escribir 'git git' sin error en la terminal

Un truco de configuración permite encadenar cualquier número de veces la palabra 'git' antes de un comando válido sin que el terminal devuelva un error. El autor del blog caiustheory.com explica que es habitual teclear 'git' y, por inercia, escribir después un comando completo como 'git status', lo

Task runners para unificar tareas comunes en cualquier repositorio

Los desarrolladores que alternan entre varios repositorios se enfrentan a un problema cotidiano: cada proyecto usa una pila tecnológica distinta y exige recordar comandos diferentes para instalar dependencias, compilar, formatear, ejecutar pruebas o desplegar. Memorizar todos esos comandos y sus mat

Audio-Cassette-Simulation: emula el sonido de cintas de casete con ffmpeg

Audio-Cassette-Simulation es un proyecto de código abierto publicado en GitHub por AARomanov1985 que reproduce digitalmente los perfiles de audio característicos de las cintas de casete. La herramienta, distribuida bajo licencia MIT, emplea scripts de bash junto con ffmpeg (compilado con libmp3lame)

El humilde dos puntos de la shell: un truco que vale la pena recordar

En programación de shell, el carácter dos puntos (:) es mucho más útil de lo que aparenta. Funciona como el llamado "comando nulo" (null command), un built-in del shell que no ejecuta ninguna acción pero sí evalúa sus argumentos, hereda su comportamiento desde la Thompson shell de 1971, donde servía

bashumerate: un iterador programable para la shell

bashumerate es una utilidad de línea de comandos escrita en unas 140 líneas de Bash que unifica la forma de iterar sobre distintos tipos de elementos en la shell. Su pieza central es el comando enumerate, que acepta cuatro fuentes de datos mediante banderas específicas: -f para archivos con glob, -l

Por qué un segfault desaparece al lanzar un programa con entr y bash -c

Un programador que iteraba sobre un pequeño programa en C con la herramienta entr descubrió que el mensaje 'Segmentation fault' no aparecía en la terminal al ejecutar el binario tras la compilación, pese a que el proceso moría por SIGSEGV. El artículo explica la causa raíz y propone soluciones. El

Amber, un lenguaje de programación moderno que compila a Bash

Amber es un lenguaje de programación de tipado fuerte y sintaxis inspirada en ECMAScript que se compila a scripts de Bash. Su objetivo es ofrecer una capa moderna, segura y ergonómica para escribir lógica de shell sin renunciar a la interoperabilidad directa con Bash, lo que lo hace atractivo para t

Por qué un script "/bin/sh" puede no ser portable aunque sea POSIX

El desarrollador Alexandre Gomes Gaigalas sostiene que la idea de escribir un guion "portable" en shell POSIX es engañosa, porque POSIX es una especificación, no un programa. Cada shell real —bash, dash, ash, ksh, yash y otros— implementa esa norma con lagunas, extensiones y particularidades históri

Los archivos de texto como interfaz de usuario

Este artículo de Dave en su 'Virtual Box of Cards' propone una idea sencilla pero potente: usar archivos de texto plano como interfaz de usuario para programas de línea de comandos, en lugar de desarrollar costosas TUI (interfaces de usuario textuales) desde cero. La técnica se basa en lanzar el edi

Cómo hacer peticiones HTTP en bash sin curl usando /dev/tcp

En un contenedor Docker con la imagen reducida al mínimo y sin curl ni wget, es posible abrir un socket TCP y enviar una petición HTTP usando únicamente bash y la redirección especial /dev/tcp. Basta con asignar un descriptor de fichero con exec 3<>/dev/tcp/host/puerto, escribir la petición con prin

Domina tmux: Personaliza tu terminal para mayor eficiencia

Este artículo de Ham Vocke, originalmente publicado en hamvocke.com, es una guía práctica para personalizar tu experiencia con `tmux`, un multiplexor de terminales. `tmux` permite dividir la terminal en múltiples paneles y ventanas, facilitando la gestión de múltiples tareas en una sola sesión. Aunq

Forkrun: Nuevo Software Acelera Procesamiento en Linux

Un nuevo software llamado `forkrun` está revolucionando el procesamiento paralelo en sistemas Linux, ofreciendo mejoras de velocidad significativas en comparación con herramientas tradicionales como GNU Parallel. Desarrollado por Jkool y disponible en GitHub, `forkrun` se presenta como un reemplazo

Mejora tus diffs Git con Delta y fzf

Este artículo de Nick Janetakis describe una configuración para mejorar la visualización de diffs (diferencias) en Git, utilizando las herramientas Delta, fzf y un script de shell personalizado. El objetivo es facilitar la revisión de código, especialmente en el contexto de Pull Requests (PRs). *

Mejora tu terminal: Trucos esenciales de Shell

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

Crea tu propia shell: guía paso a paso

Este artículo del blog de Healey Codes detalla la construcción de una shell de comandos simplificada, llamada 'andsh', como un ejercicio de aprendizaje. El objetivo es comprender el funcionamiento interno de una shell, más allá de su uso para ejecutar comandos y scripts. La shell es un programa inte

Navega directorios más rápido con 'sd'

Un nuevo proyecto de código abierto, llamado 'sd', ha sido lanzado para mejorar la navegación de directorios en shells como ksh93u+, bash y zsh. Esta herramienta, disponible en GitHub, ofrece una alternativa al comando 'cd' tradicional, permitiendo a los usuarios moverse entre directorios de manera

midipipe: Linux facilita la conexión MIDI con texto

Un nuevo programa de código abierto llamado 'midipipe' ha sido lanzado para Linux, simplificando la interacción MIDI. Desarrollado por Arne Brasseur y alojado en codeberg.org, midipipe permite la transmisión de mensajes MIDI en formato de texto plano a través de la entrada y salida estándar (stdin/s

Eshell: la shell integrada de Emacs que debes conocer

Este artículo explora una alternativa inusual a las shells tradicionales (Zsh, Fish, Bash) para usuarios avanzados de Emacs: la Eshell integrada. La Eshell, a menudo pasada por alto, se presenta como una solución elegante para aquellos que ya trabajan principalmente dentro de Emacs y alternan entre

Entendiendo '2>&1': Redirección de errores en comandos

En entornos de línea de comandos, especialmente en sistemas Unix-like (Linux, macOS, etc.), es común que los programas generen dos tipos de salida: la salida estándar (stdout) que contiene los resultados esperados, y la salida de error (stderr) que contiene mensajes de diagnóstico o errores. Por def

find: El comando de Linux esconde una potencia inesperada

El comando `find`, una herramienta fundamental en sistemas Unix y Linux, es a menudo uno de los primeros comandos que aprenden los usuarios. Sin embargo, un nuevo estudio revela una faceta sorprendente: `find` es, de hecho, Turing completo. Esto significa que, teóricamente, puede ejecutar cualquier

Emojis en la Terminal: Dale Color a tu Shell

Este artículo, titulado "Diversión con Emojis de Shell", presenta una forma sencilla y divertida de personalizar tu entorno de línea de comandos (shell) añadiendo emojis aleatorios a los mensajes. La idea es romper la monotonía de trabajar en la terminal, ya sea en Linux, macOS o Windows, inyectando

Scripts en PATH: Evita conflictos con comandos

En el mundo de Unix y Linux, es común que los usuarios creen un directorio `~/bin/` y lo añadan a su `PATH` para agregar comandos personalizados y scripts. Sin embargo, esto plantea un problema: la posibilidad de que un nuevo comando del sistema coincida con el nombre de uno de tus scripts personali