Kabosu - Creando cosas

Logo de la página. Gato esférico con colores verdoso.

La línea de comandos

Publicado: 2025-08-19

Etiquetas: Opinión, Software


Buenos días, tardes o noches:

Hoy toca hablar de la temida terminal. Si hubo una cosa que me hizo enamorarme de Linux a principios de los 2000 y luego de FreeBSD fue la línea de comandos. Hacer cosas en la terminal tiene muy mala fama. Es sinónimo de difícil. Y estoy de acuerdo en parte. Cuando la gente habla de tener que usar la terminal normalmente es en el contexto de tocar algún fichero de configuración, arreglar algo que se ha roto o tareas similares. Yo no tengo mucha idea de esas cosas y siempre que tengo que hacer algo así me toca buscar en internet cómo hacerlo. Lo que me gusta mucho de la terminal es escribir comandos en ella para procesar datos. Concatenar 2, 3, 8 comandos y hacer cosas sin necesidad de usar aplicaciones con las que tardaría horas ne hacer lo mismo.

El diseño de la terminal de Linux es una maravilla que ningún otro sistema operativo ha conseguido igualar en mi opinión. En verdad Linux no ha inventado y todo esto viene de los diferentes Unix y BSD pero por simplicidad yo digo "la terminal de Linux".

La idea clave en mi opinión es el operador |. Si lo pones entre dos comandos, los conecta de forma que lo que escribe el primero lo recibe el segundo. Por ejemplo ls | wc -l lista el contenido del directorio pero en vez de mostrar lo por pantalla se pasa a wc -l que calcula cuántas líneas hay. El resultado es que te dice cuántos ficheros y directorios hay.

Conociendo 5 o 10 comandos de la terminal y encadenándolos de diferentes formas puedes hacer cosas complicadísimas con una sola línea. Los elementos por separado son extremadamente simples pero se pueden combinar para crear maravillas.

Estos son los comandos que yo uso con más frecuencia. Cada uno de ellos tiene decenas o cientos de argumentos diferentes pero yo solo uso las opciones más básicas:

Hay otros que uso menos y que cada vez que los necesito tengo que buscar qué argumentos hay que pasarles:

Por ejemplo, hace un tiempo quería descargar todos los vídeos de Youtube enlazados en la web Guías Nintendo de la que ya había bajado todas sus páginas HTML. Lo que hice fue lo siguiente:

grep -roE 'https?://(www\.)?youtube\.com/embed/[a-zA-Z0-9_-]+' . | sort | uniq | xargs -n 1 yt-dlp

El comando anterior se puede separar en 4 pasos:

Me gusta de la terminal que es un proceso incremental. Empiezas sabiendo 1 o 2 comandos con sus opciones más comunes y poco a poco puedes ir aprendiendo más hasta ser capaz de hacer montones de cosas sin necesidad de programar. Yo llevo más de 20 años usando la terminal casi a diario para procesar datos combinando la mayoría de los comandos anteriores y siempre aprendo cosas nuevas. Por ejemplo cosas que antes hacía con cut ahora sé que se pueden hacer directamente con algún argumento de grep pero eso no quita que esté mal usar cut. Hay mil formas diferentes de hacer las cosas.

Me gustaría que "la terminal" fuera vista como la herramienta útil que es para procesar datos en vez de cómo algo viejo que tienes que usar por obligación porque no hay alternativa.


Artículo siguiente: Mis inversiones de mentira
Artículo anterior: File over app, ficheros antes que aplicaciones.