

Descubra más de La Naturaleza del Software
El programador oxidado, por muy oxidado que esté, no le teme a la línea de comandos. La terminal es una vieja conocida, porque el programador oxidado usaba pantallas de fósforo verde sobre fondo negro.
Si es muy viejo, puede que haya usado algo como VMS, o CMS, pero seguro, seguro, uso DOS. Pero amigo, ahora el sistema operativo que la lleva es Linux, así que los comandos que debes conocer son los de la terminal de este sistema operativo.
Si usas Windows puedes instalar WSL para poder usar comandos de Linux en tu terminal, no te voy a explicar cómo hacerlo, porque internet está lleno de tutoriales sobre este tema.
Si usas Mac, bueno, estás usando un tipo de Unix, y, por lo tanto, vas a tener gran parte de los comandos de Linux, pero atención, hay algunos que no se comportan igual.
Lo mejor es usar Linux directamente, porque hay un 99% de probabilidad de que tus aplicaciones corran en ese sistema operativo.
Una alternativa para practicar es usar Docker, basta con hacer:
docker run -it bash
Y tienes tu terminal para pacticar.
Así se ve en mi Mac:
De este modo instalas bash, que es probablemente el shell de Linux más usado.
Hay muchos comandos en Linux, y hace un tiempo escribí un artículo en mi blog sobre estos, allí explico que son las shell en Unix (y sistemas similares como Linux) y muestro algunos comandos útiles, si te interesa te dejo el link: https://www.programando.org/blog/2021/04/24/el-camino-del-backend-developer-comandos-de-terminal/
Pero en este artículo te voy a mostrar comandos nuevos, que no vienen en las distros de Linux, son comandos creados por la comunidad en los últimos años, en particular, la comunidad de Rust ha creado nuevos comandos que reinterpretan viejos comandos de Unix y les agregan nuevas funcionalidades.
Estos comandos los puedes instalar en tu sistema operativo, en Linux, normalmente usando apt
, o en Mac usando brew
, más adelante hablaré sobre los gestores de paquetes, que son estos utilitarios que nos permiten instalar software en nuestro sistema operativo. Les dejaré por cada comando un link para que puedan instalarlos.
Vamos entoces.
bat:
es un comando que es similar en uso a cat, pero en vez de simplemente enviar el contenido del archivo a la consola, se encarga de colorearlo según la sintáxis del archivo. Por ejemplo, si recuerdas el ejercicio del post anterior, creamos un archivo python, que bat te lo muestra de este modo:O si haces bat Dockerfile:
Es bastante agradable como puedes ver, tienes el nombre del archivo, las lineas numeradas, el contenido dentro de un recuadro, y funciona similar al comando more, permitiendote recorrer el archivo de manera paginada.
Quizás la mejor característica de bat es que se integra con git para mostrarte los cambios en el archivo:
RipGrep: https://github.com/BurntSushi/ripgrep. Es muy parecido a grep, pero corre sobre todo el directorio que recibe como parámetro por default, si sólo incluyes la expresión a buscar, entonces busca en el directorio actual.
Por ejemplo:
Para mí, lo que me gusta es que es bastante rápido, y lo he usado para buscar en directorios grandes o archivos grandes, porque su desempeño es mejor que grep en esos casos.
tokei:
https://github.com/xampprocky/tokei#installation.
Se usa para sacar estadísticas rápidas de tu código fuente.
exa
: https://the.exa.website. Es un reemplazo a ls, bastante cool:
fd
: https://github.com/sharkdp/fd. Es un reemplazo afind
, esta imagen es una demo provista por los creadores de este comando:Si has usado
find
, esta herramienta es mucho más amistosa.procs:
https://github.com/dalance/procs#installation.Una alternativa aps.
Y hay muchos más, seguro que algunos de ustedes conocen nuevos comandos como estos, así que los invito a compartirlos en los comentarios. Y a quienes no los conocían los animo a usarlos.
También los invito a compartir este contenido con sus amistades que ustedes consideren que están algo oxidados, u oxidadas.
Esos raros comandos nuevos
buenos comandos.
mi aporte es jq
jq .atributo archivo.json #para parsear el json y mostrar algun valor
jq . archivo.json #para mostrarlo formateado en la consola
jq tendrá un apartado especial porque es un lenguaje de programación igual que awk