Saltar al contenido
jungladigital

Anatomía de una app CLI: comandos, flags y el manual incluido

Todas las apps de terminal hablan la misma gramática: comando, acción, flags y --help. Apréndela una vez — con ayuda de una vaca que habla — y ninguna herramienta nueva te asustará.

Prompt de terminal con el flag --help y el lema: toda app CLI habla el mismo idioma

En el sendero anterior llenaste tu taller de herramientas. Hoy te cuento un secreto que las hace valer doble: todas las aplicaciones de terminal — las apps CLI — hablan el mismo idioma. Apréndelo una vez y cada herramienta nueva te resultará familiar, como quien ya sabe leer y solo cambia de libro. Y para practicar vamos a instalar la app más seria del planeta: una vaca que habla.

Una frase con sujeto y predicado

Mira este comando como si fuera una oración completa:

~ (tu carpeta de casa)
$ npm install -g cowsayadded 41 packages in 2s$ cowsay "hola jungla" _____________< hola jungla > -------------        \   ^__^         \  (oo)\_______            (__)\       )\/\                ||----w |                ||     ||

Desármala: npm es el programa, install es la acción (el subcomando), cowsay es sobre qué actúa (el argumento) y -g es un modificador (un flag). Programa, acción, objeto, modificadores — sujeto y predicado. Todas las apps CLI del mundo se leen con esa misma frase, y tú ya la venías usando sin saberlo.

Los flags: interruptores de comportamiento

Los flags cambian cómo se hace la acción sin cambiar la acción. Los cortos llevan un guion (-d); los largos, dos (--version):

~ (tu carpeta de casa)
$ cowsay -d "demasiados flags" __________________< demasiados flags > ------------------        \   ^__^         \  (xx)\_______            (__)\       )\/\             U  ||----w |                ||     ||$ cowsay --version1.6.0

-d (de dead) noqueó a la vaca — un interruptor, otra vaca. Y --version es un clásico que existe en casi todas las apps CLI: pregúntale a git --version o a npm --version y te contestarán igual de obedientes. Mismo idioma, distintas herramientas.

–help: el manual viene incluido

Esta es la parte buena: casi toda app CLI trae su manual adentro. Nadie memoriza flags — se los preguntan a la propia herramienta:

~ (tu carpeta de casa)
$ cowsay --helpUsage: cowsay [-e eye_string] [-f cowfile] [-h] [-l] [-n] [-T tongue_string] [-Wcolumn] [-bdgpstwy] text# …explica cómo usarla y lista sus opciones; entre ellas:  --version   Show version number                                      [boolean]  -e          Select the appearance of the cow's eyes.           [default: "oo"]  -d          Mode: Dead                                               [boolean]# la lista completa sigue en tu pantalla, cada flag explicado

Ahí estaba -d todo este tiempo. La próxima vez que una herramienta te intimide, respira y pídele --help: la app misma te cuenta qué sabe hacer. ¿Y la vaca? Cumplió su misión docente — si quieres despedirla, npm uninstall -g cowsay: la misma gramática, la acción contraria.

En la próxima parada esta gramática se pone seria: git, un comando con subcomandos que guarda la historia completa de tu proyecto.