lunes, 17 de febrero de 2020

Back to the console... for

Mi primer ordenador no tenía ventanas, era un MSX y tenía que escribir comandos de consola en Basic.
Tras unos años llegó el flamante 386 con su MS DOS, donde tenía que pelearme con el autoexec.bat y con el consig.sys para tunear el arranque del ordenador para jugar según a qué juegos.

Pasados los años me acomodé y prefería disfrutar de ventanas de configuración todas las opciones en pantalla, botones para ejecutar acciones, etc. Vamos, no  comprendía por qué en los sistemas modernos los administradores tenía que aprenderme los parámetros de configuración, cuando en un menú bien organizado deberían aparecer todas las opciones posibles.

Los últimos años he vuelto a la consola.
Modas a parte, si quieres ser rápido y eficiente no puedo depender de los interfaces gráficos, además, aunque la curva de aprendizaje pueda ser un poco más elevada (no mucho más). Al final compensa, por velocidad, eficiencia y conocimiento de las plataformas. La mayor parte de las veces acabas pudiendo hacer más cosas, o al menos puedes automatizarlas más fácilmente.
Vamos, que los grep, cat o curl se han convertido en compañeros del día a día.

Así que permitirme que inicie una serie de posts dedicados a mi yo del futuro por si alguna vez vuelvo a las ventanas, tener un lugar donde estén algunos de los recursos que por muy básicos que parezcan me han resultado muy útiles. 

Uno de los comandos más que más estando usando últimamente es el for.
Es súper útil, puedes hacer un bucle con cualquier tipo de colección:
~$ for i in Pedro Jorge Manel; do echo hola $i; done
hola Pedro
hola Jorge
hola Manel
Puedes iterar una secuencia de números
~$ for i in {1..3}; do echo Hola $i; done
Hola 1
Hola 2
Hola 3
También puedes iterar sobre la salida de un comando de consola
:~$ for i in $(ls); do echo Hola $i; done
Hola Desktop
Hola Develop
Hola Documents
Hola Downloads
Un caso real que uso mucho últimamente es el comprobar el estado de las aplicaciones en Openshift (el Kubernetes vitaminado de Red Hat) con esta simple línea
:~$ for pod in $(oc get pods | grep nombre_deployment | awk '{print $1}'); do echo $pod && oc rsh $pod curl localhost/health && oc rsh $pod jstat -gc 1; done
Con este comando imprimo el nombre del pod, la salida del endpoint de health check y por último imprimo las estadísticas del recolector de basura de java


No hay comentarios:

Publicar un comentario